Spring RestTemplate获得原始json

时间:2018-01-15 15:44:47

标签: java character-encoding resttemplate spring-rest

我正在使用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);

0 个答案:

没有答案