【发布时间】:2017-02-13 12:56:26
【问题描述】:
我正在使用OKHttp 的authenticator,如果我们收到401 状态错误,它将重试获取新的访问令牌,但我的应用程序必须在同时,导致数据损坏,因为存在的刷新令牌将在请求时被删除 - 但其他 API 调用者仍然依赖此令牌来使用。所以我的问题是:当我们收到 401 错误状态代码时,是否将请求放入队列(或至少取消)所有其他 api 请求?
这是我的验证器:
public Request authenticate(Route route, Response response) throws IOException {
// Refresh your access_token using a synchronous api request
access_token = getNewAccessTokenHere();
// Add new header to rejected request and retry it
return response.request().newBuilder()
.header("Authorization", "Bearer " + access_token)
.build();
} else {
ToastUtil.toast("login again");
return null;
}
}
我的目标是让其他 api 等待第一个请求的响应并使用新的 access_token。
【问题讨论】:
标签: android retrofit retrofit2 okhttp