RestTemplate get请求附加头信息

###RestTemplate get请求附加头信息

Eureka的server端想要获取所有注册instance的信息,要通过Eureka提供的rest接口 “http://server地址/eureka/apps" 来获取,但是通过接口返回的是xml信息,如果想要返回json格式,要在请求头附加
>Content-Type:application/json
Accept:application/json

RestTemplate提供的post方法可以直接在调用时添加头,eureka提供的rest接口是不支持post方法的,所以必须用get方式请求,但是RestTemplate提供的几个适用于get请求方法并不能添加头信息,这时就需要实现 ClientHttpRequestInterceptor拦截请求(这会导致所有请求都会附带添加的头信息)

1
2
3
4
5
6
7
8
9
10
11
12
13
/**
* @author techoneduan
* @date 2018/12/17
*/
public class RestRequestInterceptor implements ClientHttpRequestInterceptor {
@Override
public ClientHttpResponse intercept (HttpRequest httpRequest, byte[] bytes, ClientHttpRequestExecution clientHttpRequestExecution) throws IOException {
HttpHeaders headers = new HttpHeaders();
headers.add("Content-Type", "application/json");
headers.add("Accept", "application / json");
return clientHttpRequestExecution.execute(httpRequest,bytes);
}
}
Thanks!