I'm currently using an OAuth2RestOperations that extends the Spring RestTemplate and I would like to specify the content type header.
The only thing I've managed to do was to explicitly set my header during the request:
public String getResult() {
String result = myRestTemplate.exchange(uri, HttpMethod.GET, generateJsonHeader(), String.class).getBody();
}
private HttpEntity<String> generateJsonHeader() {
HttpHeaders headers = new HttpHeaders();
headers.setAccept(Collections.singletonList(MediaType.APPLICATION_JSON));
return new HttpEntity<>("parameters", headers);
}
But it would actually be great to be able to set that once and for all during the bean initialization, and directly use the getforObject method instead of exchange.
If you're using Spring Boot, you can just
First you have to create request interceptor:
... and then you have rest template creation code which uses above interceptor:
You could subclass
RestTemplate
if you were to have some other specialised or universal REST templates in your application.