mgo*_*gol 3 java spring resttemplate spring-boot
我正在努力在我的 Spring Boot 应用程序中集成第三方 API。
第三方 API 身份验证的工作原理:
使用当前的访问令牌,我可以调用 API。
有没有办法使用 RestTemplate 无缝处理这种情况?
我已经尝试手动处理这种情况,所以如果我从 API 返回 401,我发送了一个刷新令牌请求,重写我返回的密钥并重试请求,不确定如何处理存储 api 密钥以备不时之需重新启动服务器。
这很容易用 a 完成,ClientHttpRequestInterceptor如果401发生了,您可以在其中替换请求标头:
@Override
public ClientHttpResponse intercept(
HttpRequest request,
byte[] body,
ClientHttpRequestExecution execution) throws IOException {
ClientHttpResponse response = execution.execute(request, body);
if(response.getStatusCode() == HttpStatus.UNAUTHORIZED) {
request.getHeaders().replace("Auth-Header", getNewToken());
return execution.execute(request, body);
}
return response;
}
Run Code Online (Sandbox Code Playgroud)
请参阅此处以获取进一步指导。
| 归档时间: |
|
| 查看次数: |
6499 次 |
| 最近记录: |