应用程序在HttpLoggingInterceptor上崩溃

时间:2015-12-16 15:34:55

标签: android retrofit okhttp

我已经使用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!

1 个答案:

答案 0 :(得分:5)

你读过这个吗? 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版本。这就是你需要的原因   手动导入日志拦截器。添加以下行   您的build.gradle文件中的gradle导入以获取日志记录   拦截器依赖。

     

compile&#39; com.squareup.okhttp:logging-interceptor:2.6.0&#39;