我目前正在手动构建一个假装客户端并将拦截器传递给它进行授权.我想为一些响应代码提供更智能的Retryer.
public class myErrorEncoder extends ErrorDecoder.Default {
@Override
public Exception decode(final String methodKey, final Response response) {
if (response.status() == 401) {
String token = refreshToken(); // I would like to refresh the token and Edit the client
return new RetryableException("Token Expired will retry it", null);
} else {
return super.decode(methodKey, response);
}
}
Run Code Online (Sandbox Code Playgroud)
}
拦截器
@Bean public CustomInterceptor getInterceptor(String token) {
return new CustomInterceptor(token);}
Run Code Online (Sandbox Code Playgroud)
假装建设者
private <T> T feignBuild(final Class<T> clazz, final String uri, final String token) {
return …Run Code Online (Sandbox Code Playgroud)