我看到ResponseInterceptors在OkHttp中存在。我想使用一个,但是我使用的是Retrofit,而不是直接使用OkHttp。
我的问题是,首先,是否可以在改造后使用ResponseInterceptors?如果是的话,怎么做?有用于请求拦截器的api方法,但我找不到任何相应的响应方法。
发布于 2015-08-13 13:04:44
对于那些无意中发现这个问题的人,我经过进一步的搜索,终于找到了答案。请注意,以下内容需要OkHttp 2.2+和改装1.9+
//First create the OkHttp client and add your response interceptor
OkHttpClient httpClient = new OkHttpClient();
httpClient.interceptors().add(new ApiResponseInterceptor());
//then set the client on your RestAdapter
RestAdapter.Builder builder = new RestAdapter.Builder()
.setEndpoint(ACCOUNTS_SERVICE_BASE_URL)
.setClient(new OkClient(httpClient))
.setConverter(new GsonConverter(gson))
.setRequestInterceptor(getAuthRequestInterceptor())
.setLogLevel(RestAdapter.LogLevel.FULL);
发布于 2017-05-23 11:36:10
还请参阅此this question,它似乎是此版本的副本。一种可能是在Retrofit的execute
中重写OkClient
方法
OkClient client = new OkClient(okHttpClient) {
@Override
public retrofit.client.Response execute(retrofit.client.Request request) throws IOException {
retrofit.client.Response response = super.execute(request);
// Inspect 'response' before returning it
return response;
}
};
RestAdapter.Builder restAdapterBuilder = new RestAdapter.Builder()
.setEndpoint(API_BASE_URL)
.setClient(client);
https://stackoverflow.com/questions/31986834
复制相似问题