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
First you have to create request interceptor:
public class JsonMimeInterceptor implements ClientHttpRequestInterceptor {
  @Override
  public ClientHttpResponse intercept(HttpRequest request, byte[] body,
        ClientHttpRequestExecution execution) throws IOException {
    HttpHeaders headers = request.getHeaders();
    headers.add("Accept", MediaType.APPLICATION_JSON);
    return execution.execute(request, body);
  }
}
... and then you have rest template creation code which uses above interceptor:
@Configuration
public class MyAppConfig {
  @Bean
  public RestTemplate restTemplate() {
      RestTemplate restTemplate = new RestTemplate(clientHttpRequestFactory());
      restTemplate.setInterceptors(Collections.singletonList(new JsonMimeInterceptor()));
      return restTemplate;
  }
}
You could subclass RestTemplate if you were to have some other specialised or universal REST templates in your application.