我有一个 android 应用程序,它使用 spring android 库与我的 restful api 进行通信。当我的客户的令牌过期时,我不确定如何处理这种情况。我想要的是捕获任何 401 错误并简单地获取一个新令牌并重试请求。
我创建了一个 ResponseErrorHandler 并将其连接到我的休息模板:
public class UnauthorizedErrorHandler implements ResponseErrorHandler {
....
public void handleError(ClientHttpResponse response) throws IOException {
if (response.getStatusCode().value() == HttpStatus.SC_UNAUTHORIZED) { // 401 error
// fetch a new token
// Retry request now that we have a new token????
}
}
}
我的问题是我无法访问响应错误处理程序中的原始请求。除非我遗漏了什么,否则这个策略似乎是合理的,但我不确定如何让它发挥作用。对于任何使用 OAuth 令牌的客户端来说,这似乎也是一个典型的场景,所以希望有人可以为我指明正确的方向。