【发布时间】:2016-02-11 12:03:48
【问题描述】:
我正在使用 Retrofit 和 Dagger 2。我已经实现了一个 OkHttp Interceptor 来添加 oauth 令牌。如果没有 oauth 令牌或时间戳无效,我会在执行实际请求之前请求一个新令牌(通过 Retrofit 服务)。
这会创建一个依赖循环,其中 Retrofit 服务需要 Interceptor 但 Interceptor 也需要 Retrofit 服务(用于检索 oauth 令牌)。
Interceptor 的示例(为简化起见,它总是通过 restService#refreshAccessToken 请求令牌):
@Override
public Response intercept(Chain chain) throws IOException {
Request originalRequest = chain.request();
Request.Builder requestBuilder = originalRequest.newBuilder();
String authHeader = "Bearer " + restService.refreshAccessToken();
requestBuilder.addHeader("Authorization", authHeader);
return chain.proceed(requestBuilder.build());
}
【问题讨论】:
标签: android dependency-injection retrofit okhttp dagger-2