欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Spring RestTemplate 之中文乱码

程序员文章站 2022-03-04 20:29:22
...

Spring RestTemplate 之中文乱码

由于RestTemplate的默认构造方法初始化的StringHttpMessageConverter的默认字符集是ISO-8859-1,所以导致RestTemplate请求的响应内容会出现中文乱码。

解决办法:

springboot中@Bean配置的时候要把StringHttpMessageConverter编码改成UTF8格式。:

@Bean    

public RestTemplate restTemplate() {

        RestTemplate restTemplate = new RestTemplate();

        restTemplate.getMessageConverters().set(1, new StringHttpMessageConverter(StandardCharsets.UTF_8));        

        return restTemplate;

    }

在applicationContext.xml配置中:

<bean id="requestFactory" class="org.springframework.http.client.SimpleClientHttpRequestFactory">

        <property name="readTimeout" value="10000"/>

        <property name="connectTimeout" value="5000"/>

</bean>

<bean id="simpleRestTemplate" class="org.springframework.web.client.RestTemplate">

       <constructor-arg ref="requestFactory"/>

       <property name="messageConverters">

            <list>

                <bean class="org.springframework.http.converter.FormHttpMessageConverter"/>

                <bean class="org.springframework.http.converter.xml.MappingJackson2XmlHttpMessageConverter"/>

                <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/>

                <bean class="org.springframework.http.converter.StringHttpMessageConverter">

                     <property name="supportedMediaTypes">

                            <list>

                                <value>text/plain;charset=UTF-8</value>

                            </list>

                     </property>

                </bean>

            </list>

        </property>

  </bean>
相关标签: restTemplate