本示例说明如何在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`: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主题。