0

我正在尝试让我的网络类记录传入的 JSON,我想使用来自 OkHttp3 的 HttpLoggingInterceptor。问题是我的改造对象不会从 okhttp3 中获取 OkHttpClient。如果您知道我做错了什么,请告诉我。

摇篮

compile 'com.squareup.retrofit:retrofit:2.0.0-beta4'
compile 'com.squareup.okhttp3:okhttp:3.1.2'
compile 'com.squareup.retrofit:converter-jackson:2.0.0-beta2'
compile 'com.squareup.okhttp3:logging-interceptor:3.0.1'

改造和客户端设置

import okhttp3.OkHttpClient;
import okhttp3.logging.HttpLoggingInterceptor;
import retrofit.Retrofit;

HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
client = new OkHttpClient.Builder().addInterceptor(interceptor).build();

retrofit = new Retrofit.Builder().baseUrl(URL).client(client).addConverterFactory(JacksonConverterFactory.create()).build();

API = retrofit.create(com.glasshouse.glasshouse.Network.API.class);

Android 工作室说改造需要 okhttp.OkHttpClient 而不是 okhttp3.OkHttpClient 但如果使用那个,我不能使用 HttpLoggingInterceptor ...

感谢您的任何回答。

4

3 回答 3

1

是的,没关系 - 对于那些面临类似问题的人,使用改造 2 而不是改造

(需要导入 retrofit2.Retrofit 不导入 retrofit.Retrofit )

于 2016-02-18T13:56:00.043 回答
1

作为其他人的参考,您需要在 gradle 中编译“com.squareup.retrofit2”而不是“com.squareup.retrofit”。

//old
compile 'com.squareup.retrofit:retrofit:2.0.0-beta4'

//new
compile 'com.squareup.retrofit2:retrofit:2.0.0-beta4'
于 2016-02-21T18:08:43.207 回答
0

我正在使用以下配置进行改造,效果很好。

build.gradle 内部:

      compile 'com.squareup.okhttp3:okhttp:3.0.1'
      compile 'com.squareup.okhttp:logging-interceptor:2.6.0'
      compile 'com.fasterxml.jackson.core:jackson-core:2.4.1'
      compile 'com.fasterxml.jackson.core:jackson-annotations:2.4.1'
      compile 'com.fasterxml.jackson.core:jackson-databind:2.4.1'

改造配置:

    private WebServices getWebServices(String serverUrl) {
    OkHttpClient client = new OkHttpClient();
    HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
    interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
    client.interceptors().add(interceptor);
    Retrofit retrofit = new Retrofit.Builder()
            .baseUrl(serverUrl)
            .addConverterFactory(GsonConverterFactory.create())
            .client(client)
            .build();
    webServices = retrofit.create(WebServices.class);
    return webServices;
}
于 2016-02-18T13:56:46.667 回答