亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

RestTemplate返回值中文亂碼問(wèn)題

 更新時(shí)間:2024年04月19日 15:46:27   作者:偷代碼的貓  
這篇文章主要介紹了RestTemplate返回值中文亂碼問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

一、問(wèn)題描述

使用RestTemplate發(fā)送請(qǐng)求,返回值中文亂碼

RestTemplate restTemplate = new RestTemplate();
ResponseEntity<String> response = restTemplate.getForEntity(url, String.class);

二、代碼追蹤

DEBUG過(guò)程中即時(shí)查詢返回值是在哪里調(diào)度的,數(shù)值的改變是在哪里觸發(fā)的

1、追蹤getForEntity方法,發(fā)現(xiàn)execute方法

2、追蹤execute方法,發(fā)現(xiàn)doExecute方法

3、追蹤doExecute方法,發(fā)現(xiàn)extractData方法

4、發(fā)現(xiàn)有多個(gè)接口實(shí)現(xiàn),debug跳轉(zhuǎn)定位是哪個(gè)方法,好了,終于發(fā)現(xiàn)messageBody解析了

  • 通過(guò)上述代碼我們可以簡(jiǎn)單判斷,RestTemplate的消息響應(yīng)應(yīng)該是由messageConverters控制的
  • 所以我們應(yīng)該是需要對(duì)他進(jìn)行賦值修改

5、分析messageConverters,看Message轉(zhuǎn)化為各種對(duì)象,諸如Byte、String之類(lèi)的,我們看的是String

三、解決辦法

1、懶人解決

RestTemplate restTemplate = new RestTemplate();
//可以在上圖分析上看到StringHttpMessageConverter index=1,所以.
restTemplate.getMessageConverters().set(1, new StringHttpMessageConverter(StandardCharsets.UTF_8));
ResponseEntity<String> response = restTemplate.getForEntity(url, String.class);

2、遍歷查詢

RestTemplate restTemplate = new RestTemplate();
List<HttpMessageConverter<?>> converterList =restTemplate.getMessageConverters();
int converterIndex = -1;
for (int i=0;i<converterList.size();i++){
    if(converterList.get(i).getClass() == StringHttpMessageConverter.class){
        converterIndex = i;
        break;
    }
}
if(converterIndex !=-1){
    restTemplate.getMessageConverters().set(converterIndex, new StringHttpMessageConverter(StandardCharsets.UTF_8));
}
 
ResponseEntity<String> response = restTemplate.getForEntity(url, String.class);

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 淺析java中Integer傳參方式的問(wèn)題

    淺析java中Integer傳參方式的問(wèn)題

    以下是對(duì)java中Integer傳參方式的問(wèn)題進(jìn)行了詳細(xì)的介紹,需要的朋友可以過(guò)來(lái)參考下
    2013-09-09
  • spring boot基于Java的容器配置講解

    spring boot基于Java的容器配置講解

    這篇文章主要介紹了spring boot基于Java的容器配置講解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • Spring中@RestControllerAdvice注解的使用詳解

    Spring中@RestControllerAdvice注解的使用詳解

    這篇文章主要介紹了Spring中@RestControllerAdvice注解的使用詳解,@RestControllerAdvice是一個(gè)組合注解,由@ControllerAdvice、@ResponseBody組成,而@ControllerAdvice繼承了@Component,需要的朋友可以參考下
    2024-01-01
  • Spring框架的JdbcTemplate使用

    Spring框架的JdbcTemplate使用

    它是 Spring 框架中提供的一個(gè)對(duì)象,是對(duì)原始 Jdbc API 對(duì)象的簡(jiǎn)單封裝。本文就來(lái)介紹一下Spring框架的JdbcTemplate使用,感興趣的可以了解一下
    2021-09-09
  • IDEA教程創(chuàng)建SpringBoot前后端分離項(xiàng)目示例圖解

    IDEA教程創(chuàng)建SpringBoot前后端分離項(xiàng)目示例圖解

    在使用spring、mybatis等框架時(shí),配置文件很復(fù)雜,有時(shí)復(fù)雜的讓人想放棄Java,使用C#。springboot出現(xiàn)這一切問(wèn)題就都不是問(wèn)題
    2021-10-10
  • java agent 使用及實(shí)現(xiàn)代碼

    java agent 使用及實(shí)現(xiàn)代碼

    java agent的作用可以在字節(jié)碼這個(gè)層面對(duì)類(lèi)和方法進(jìn)行修改的技術(shù),能夠在不影響編譯的情況下,修改字節(jié)碼。本文主要給大家講解java agent 使用及實(shí)現(xiàn)代碼,感興趣的朋友一起看看吧
    2018-07-07
  • Windows 下安裝配置 Eclipse詳細(xì)教程

    Windows 下安裝配置 Eclipse詳細(xì)教程

    Eclipse是一款非常優(yōu)秀的開(kāi)源IDE,非常適合Java開(kāi)發(fā),由于支持插件技術(shù),受到了越來(lái)越多的開(kāi)發(fā)者的歡迎。配合眾多令人眼花繚亂的插件,完全可以滿足從企業(yè)級(jí)Java應(yīng)用到手機(jī)終端Java游戲的開(kāi)發(fā)。本文將帶您手把手步入Eclipse的廣闊天地
    2016-09-09
  • JAVA實(shí)現(xiàn)紅包分發(fā)的示例代碼

    JAVA實(shí)現(xiàn)紅包分發(fā)的示例代碼

    這篇文章主要介紹了JAVA實(shí)現(xiàn)紅包分發(fā)的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • mybatis-plus @select動(dòng)態(tài)查詢方式

    mybatis-plus @select動(dòng)態(tài)查詢方式

    這篇文章主要介紹了mybatis-plus @select動(dòng)態(tài)查詢方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • Java完美實(shí)現(xiàn)2048小游戲

    Java完美實(shí)現(xiàn)2048小游戲

    本文給大家分享的是一則根據(jù)網(wǎng)友的代碼改編的2048小游戲的源碼,個(gè)人認(rèn)為已經(jīng)非常完美了,推薦給大家,有需要的小伙伴可以參考下。
    2015-03-03

最新評(píng)論