retrofit2:添加 RequestInterceptor
retrofit2: adding RequestInterceptor
伙计们,请尝试从 retrofit 1 升级到 retrofit 2,但是我很难为所有请求添加请求拦截器.
在 retrofit 1 中,我通过这样做实现了它;
public static <S> S createService(Class<S> serviceClass, final String token) {
RestAdapter.Builder builder = new RestAdapter.Builder()
.setEndpoint(Constant.APP_URL);
builder.setRequestInterceptor(new RequestInterceptor() {
@Override
public void intercept(RequestFacade request) {
request.addHeader("token", token);
}
});
RestAdapter adapter = builder.build();
return adapter.create(serviceClass);
}
但我无法在 retrofit 2 中解决这个问题...请问有人能解决我的问题吗?
在你的依赖块中添加:
compile 'com.squareup.okhttp3:logging-interceptor:3.2.0'
在您的 Retrofit
服务中 class 添加:
HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
OkHttpClient client = new OkHttpClient.Builder()
.addInterceptor(interceptor)
.build();
然后添加:
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(URL)
.client(client) // this is the line you care about
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.addConverterFactory(JacksonConverterFactory.create())
.build();
伙计们,请尝试从 retrofit 1 升级到 retrofit 2,但是我很难为所有请求添加请求拦截器. 在 retrofit 1 中,我通过这样做实现了它;
public static <S> S createService(Class<S> serviceClass, final String token) {
RestAdapter.Builder builder = new RestAdapter.Builder()
.setEndpoint(Constant.APP_URL);
builder.setRequestInterceptor(new RequestInterceptor() {
@Override
public void intercept(RequestFacade request) {
request.addHeader("token", token);
}
});
RestAdapter adapter = builder.build();
return adapter.create(serviceClass);
}
但我无法在 retrofit 2 中解决这个问题...请问有人能解决我的问题吗?
在你的依赖块中添加:
compile 'com.squareup.okhttp3:logging-interceptor:3.2.0'
在您的 Retrofit
服务中 class 添加:
HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
OkHttpClient client = new OkHttpClient.Builder()
.addInterceptor(interceptor)
.build();
然后添加:
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(URL)
.client(client) // this is the line you care about
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.addConverterFactory(JacksonConverterFactory.create())
.build();