[英]consume Oauth2 (authorization code) rest api with spring rest template
[英]Spring Rest template overwriting Authorization header value
我正在撥打如下所示的休息電話:
REST_TEMPLATE.exchange(
external_rest_url,
HttpMethod.POST,
new HttpEntity<>(dto, getHeaders()),
Map.class)
我的標題如下:
private HttpHeaders getHeaders() {
HttpHeaders headers = new HttpHeaders();
headers.setAccept(Collections.singletonList(MediaType.APPLICATION_JSON));
headers.setContentType(MediaType.APPLICATION_JSON);
headers.set("User-Agent","Spring's RestTemplate");
headers.set(HttpHeaders.AUTHORIZATION, "some value");
return headers;
}
當我運行我的代碼時,頭HttpHeaders.AUTHORIZATION
被替換為 undefined
有誰知道為什么 spring 是這樣的,或者特別是spring-web:5.0.5
jar。 我也嘗試更改 jar 的版本,但結果相同。
我使用的 Springboot 版本是2.0.x
。
如果需要向所有請求添加相同的標頭,則可以向 RestTemplate 添加攔截器:
public void sampleHeader(final RestTemplate restTemplate){
//Add a ClientHttpRequestInterceptor to the RestTemplate
restTemplate.getInterceptors().add(new ClientHttpRequestInterceptor(){
@Override
public ClientHttpResponse intercept(HttpRequest request, byte[] body, ClientHttpRequestExecution execution) throws IOException {
request.getHeaders().set(HttpHeaders.AUTHORIZATION, "some value");//Set the header for each request
return execution.execute(request, body);
}
});
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.