我已经使用 Retrofit 2、okhttp 和 okhttp:logging-interceptor 创建了项目。
private static APIInterface apiInterface;
private static RestClient restClient;
private static HttpLoggingInterceptor interceptor;
OkHttpClient okHttpClient = new OkHttpClient();
okHttpClient.setConnectTimeout(30, TimeUnit.SECONDS);
okHttpClient.setReadTimeout(30, TimeUnit.SECONDS);
okHttpClient.interceptors().add(new Interceptor() {
@Override
public Response intercept(Chain chain) throws IOException {
Request original = chain.request();
Request.Builder requestBuilder = original.newBuilder()
.header("Accept", "application/json")
.header("X-Parse-Application-Id", Constants.PARSE_APP_ID)
.header("X-Parse-REST-API-Key", Constants.PARSE_REST_API)
.method(original.method(), original.body());
Request request = requestBuilder.build();
return chain.proceed(request);
}
});
interceptor = new HttpLoggingInterceptor(); // got crash here
interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
okHttpClient.interceptors().add(interceptor);
这是我的踪迹:
java.lang.VerifyError: com/squareup/okhttp/logging/HttpLoggingInterceptor
at com.rocker.rest.RestClient.setupRestClient(RestClient.java:62)
at com.rocker.rest.RestClient.<clinit>(RestClient.java:39)
at com.rocker.fragment.HistoryFragment.onCreateView(HistoryFragment.java:38)
我没有使用 okio by squareup!
你读过这篇文章吗?https://futurestud.io/blog/retrofit-2-log-requests-and-responses
Retrofit 2 完全依赖 OkHttp 进行任何网络操作。
由于 OkHttp 是 Retrofit 2 的对等依赖项,因此您不需要添加
Retrofit 2 作为稳定版发布后的额外依赖项
发布。
OkHttp 2.6.0 附带一个日志拦截器作为内部
依赖项,您可以直接将其用于您的 Retrofit 客户端。
Retrofit 2.0.0-beta2仍然使用OkHttp 2.5.0。未来的版本将
将依赖关系提高到更高的 OkHttp 版本。这就是为什么你需要
手动导入日志拦截器。添加以下行到
您的 gradle 在 build.gradle 文件中导入以获取日志记录
拦截器依赖。
编译 'com.squareup.okhttp:logging-interceptor:2.6.0'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)