SpringBoot遠程調用響應體爲亂碼問題

原文鏈接:https://blog.csdn.net/xiaojin21cen/article/details/84835143

                             遠程調用第三方接口響應體中文亂碼問題解決

背景:基於SpringCloud、SpringBoot的項目,使用RestTemplate進行遠程調用第三方接口

問題:使用restTemplate調用第三方接口(restTemplate.postForEntity(),注意是post請求),接收到的json格式響應體中文出現亂碼,但是第三方接口使用postman調用是正常的,不會出現亂碼問題

原因:Spring源碼默認使用ISO編碼

解決:代碼如下:

        List<HttpMessageConverter<?>> converterList = restTemplate.getMessageConverters();

        //移出默認編碼StringHttpMessageConverter
        converterList.remove(1);
        HttpMessageConverter<?> converter = new StringHttpMessageConverter(Charset.forName("UTF-8"));
        //將新的編碼格式放入原來的位置,注意convert順序錯誤會導致失敗
        converterList.add(1, converter);

        restTemplate.setMessageConverters(converterList);

將該代碼放在使用restTemplate之前就行了。

原文地址:https://blog.csdn.net/xiaojin21cen/article/details/84835143

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