我正在使用spring restTemplate来使用一些休息服务,它给了我json响应。我的问题是,当我得到响应时,它包含所有奇怪的字符,而不是服务器提供的简单json响应。最初我认为它简单的字符编码问题,但即使设置正确的转换器后,我也遇到了问题。我的代码 -
Finally
请求标头创建如下 -
RestTemplate restTemplate1 = new RestTemplate();
restTemplate1.getMessageConverters().add(0, new StringHttpMessageConverter(Charset.forName("UTF-8")));
responseEntity = restTemplate1.exchange(uri, request.getMethod(),
new HttpEntity<String>(body, requestHeaders), String.class);
另外,如果我使用getForObject而不是exchange方法(如下所示),那么我得到了正确的结果,但我不能使用它,因为我需要添加一些标题。
private MultiValueMap<String, String> getHeadersInfo(HttpServletRequest request) {
MultiValueMap<String, String> map = new LinkedMultiValueMap<>();
map.put("Accept", Arrays.asList("text/plain, text/plain, application/json, application/*+json, */*, */*"));
map.put("Content-Type", Arrays.asList("application/json; charset=UTF-8"));
return map;
}
我检查了很多博客和stackoverflow问题,但他们都提出了我在这里尝试过的技巧。
有什么建议吗?
我得到的回应类型 -
String a = restTemplate.getForObject(uri, String.class);