問題描述
Retrofit 2 的文檔 說:
可以使用 OkHttp 攔截器指定需要添加到每個請求的標頭.
Headers that need to be added to every request can be specified using an OkHttp interceptor.
使用以前的版本可以輕松完成,這里是相關的QA.
It can be done easily using the previous version, here's the related QA.
但是使用改造 2,我找不到類似 setRequestInterceptor
或 setInterceptor
方法可以應用于 Retrofit.Builder
對象.
But using retrofit 2, I couldn't find something like setRequestInterceptor
or setInterceptor
method that can be applied to Retrofit.Builder
object.
另外,OkHttp 中似乎沒有 RequestInterceptor
了.Retrofit 的文檔將我們引向 Interceptor 我不太明白如何使用它目的.
Also it seems that there's no RequestInterceptor
in OkHttp anymore. Retrofit's doc refers us to Interceptor that I didn't quite understand how to use it for this purpose.
我該怎么做?
推薦答案
OkHttpClient.Builder httpClient = new OkHttpClient.Builder();
httpClient.addInterceptor(new Interceptor() {
@Override
public Response intercept(Chain chain) throws IOException {
Request request = chain.request().newBuilder().addHeader("parameter", "value").build();
return chain.proceed(request);
}
});
Retrofit retrofit = new Retrofit.Builder().addConverterFactory(GsonConverterFactory.create()).baseUrl(url).client(httpClient.build()).build();
這篇關于使用 Retrofit 2 向所有請求添加標頭的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!