使用 OkHttp 攔截器進行改造
此示例顯示如何使用 OkHttp 的請求攔截器。這有很多用例,例如:
- 將通用
header
新增到請求中。例如,驗證請求 - 除錯聯網應用程式
- 檢索原始
response
- 記錄網路事務等
- 設定自定義使用者代理
Retrofit.Builder builder = new Retrofit.Builder()
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.addConverterFactory(GsonConverterFactory.create())
.baseUrl("https://api.github.com/");
if (!TextUtils.isEmpty(githubToken)) {
// `githubToken`: Access token for GitHub
OkHttpClient client = new OkHttpClient.Builder().addInterceptor(new Interceptor() {
@Override public Response intercept(Chain chain) throws IOException {
Request request = chain.request();
Request newReq = request.newBuilder()
.addHeader("Authorization", format("token %s", githubToken))
.build();
return chain.proceed(newReq);
}
}).build();
builder.client(client);
}
return builder.build().create(GithubApi.class);
有關更多詳細資訊,請參閱 OkHttp 主題 。