• 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>

  • 相关阅读:
    new Vue() 和 export default {}及Vue页面组件和标签组件说明与比较(非常重要)
    权限管理开源框架(非常重要)
    java 异常2
    java 异常
    java 内部类3(匿名内部类)
    java 内部类2(成员内部类)
    java 内部类1
    java 多态
    java 接口
    java abstract
  • 原文地址:https://www.cnblogs.com/jnba/p/10522613.html
Copyright © 2020-2023  润新知