Spring RestTemplate 之中文亂碼

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>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章