我如何从RestTemplate中将行响应作为json字符串

时间:2018-01-11 14:37:45

标签: spring spring-mvc resttemplate

我正在尝试获得实际的json,我收到了来自休息服务的回复。 我的问题是我为我的RestTemplate配置了多个消息转换器。

  @Bean
    public RestTemplate restTemplate(RestTemplateBuilder builder) {
        RestTemplate restTemplate = builder.build();
        restTemplate.setMessageConverters(getMessageConverters());
        return restTemplate;
    }

    private List<HttpMessageConverter<?>> getMessageConverters() {
        List<HttpMessageConverter<?>> converters = new LinkedList<>();

        StringHttpMessageConverter textConverter = new StringHttpMessageConverter();
        converters.add(textConverter);

        MappingJackson2HttpMessageConverter jsonConverter = new MappingJackson2HttpMessageConverter();
        converters.add(jsonConverter);

        HttpMessageConverter formHttpMessageConverter = new FormHttpMessageConverter();
        converters.add(formHttpMessageConverter);

        return converters;
    }

以下是我尝试从响应中检索字符串的方法。

 ResponseEntity<String> message = null;
        try {
            message = restTemplate.postForEntity(
                    url,
                    new HttpEntity<>(payload, getHeaders()),
                    String.class);
            return message.getBody();
        } catch (HttpClientErrorException e) {
            log.error(e.getResponseBodyAsString(), e);
        }

我的猜测是因为我配置了Mapping2Jackson2HttpMessageConverter,每次我收到内容类型为application / json的消息时,即使响应类型类被指定为String,它也会尝试使用json转换器转换它。

0 个答案:

没有答案