我一直在使用RestTemplate并且一直很满意!
但现在很糟糕。
我过去常常这样做:
RestTemplate restTemplate = new RestTemplate();
restTemplate.getMessageConverters().add(new GsonHttpMessageConverter());
restTemplate.put(URI, object);
通常我的服务器以Ruby方式接受URL中的格式:resource.json
但现在我正在消耗一台不再这样做的服务器了。我需要使用Header来处理格式。
一切正常,restTemplate将content-type设置为application / json但不设置Accept标头。所以我的服务器发出406错误,因为默认格式是HTML,他不渲染html。
那么,有没有人有一个解决方法,将内容和接受标题放到json并添加一个json格式的主体?
答案 0 :(得分:1)
您可以从RestTemplate对象中获取标题并添加所需内容(因为标题只不过是一个地图)。
以下是Dam工作后提供的示例代码:
RestTemplate restTemplate = new RestTemplate();
restTemplate.getMessageConverters().add(new GsonHttpMessageConverter());
HttpHeaders requestHeaders = new HttpHeaders();
requestHeaders.setContentType(MediaType.APPLICATION_JSON);
requestHeaders.setAccept(Arrays.asList(new MediaType[] {MediaType.APPLICATION_JSON}));
HttpEntity<T> requestEntity = new HttpEntity<T>((T) parameter, requestHeaders);
restTemplate.exchange(URI , HttpMethod.PUT, requestEntity, null );