解决Spring RestTemplate请求相应内容中文乱码问题

参考:https://www.cnblogs.com/BillyYoung/p/10737081.html

1、原因

RestTemplate的默认构造方法初始化的StringHttpMessageConverter的默认字符集是ISO-8859-1,所以导致RestTemplate请求的响应内容会出现中文乱码。
在这里插入图片描述

2、解决方法

Springboot中@Bean配置的时候要把StringHttpMessageConverter编码改成UTF8格式。如下


/**
 * @date 2021-06-15
 * restTemplate 配置文件
 */
@Configuration
public class RestTemplateConfig {
    @Bean
    public RestTemplate getRestTemplateBean() {
        RestTemplate restTemplate = new RestTemplate();
        SimpleClientHttpRequestFactory simpleClientHttpRequestFactory = new SimpleClientHttpRequestFactory();
        //处理请求返回中文乱码
        restTemplate.getMessageConverters().set(1, new StringHttpMessageConverter(StandardCharsets.UTF_8));
        //设置请求超时时间
        int timeOut = 10*1000;
        simpleClientHttpRequestFactory.setConnectTimeout(timeOut);
        simpleClientHttpRequestFactory.setReadTimeout(timeOut);
        restTemplate.setRequestFactory(simpleClientHttpRequestFactory);

        return restTemplate;
    }
}

posted @ 2021-09-07 21:14  →_→BéLieve  阅读(29)  评论(0)    收藏  举报  来源