RestTemplate

RestTemplate介紹

RestTemplate是Spring提供的用于訪問RESTful服務的客戶端,RestTemplate提供了多種便捷訪問遠程Http服務的方法,能夠大大提高客戶端的編寫效率。RestTemplate默認依賴JDK提供http連接的能力(HttpURLConnection),也可以通過替換為例如Apache HttpComponents、Netty或OkHttp等其它HTTP客戶端 ,OkHttp的性能優越 ,本項目使用OkHttp,官 網 :Overview - OkHttp,github: https://github.com/square/okhttp。

RestTemplate效果測試

1.依賴

<dependency><groupId>com.squareup.okhttp3</groupId><artifactId>okhttp</artifactId>
</dependency>

2.配置?

@Bean
public RestTemplate restTemplate() {return new RestTemplate(new OkHttp3ClientHttpRequestFactory());
}

3.測試類

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.http.ResponseEntity;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.web.client.RestTemplate;@RunWith(SpringRunner.class)
@SpringBootTest
public class TemplateTest {@Autowiredprivate RestTemplate restTemplate;@Testpublic void test(){String url = "http://www.baidu.com";ResponseEntity<String> forEntity = restTemplate.getForEntity(url, String.class);System.out.println("網頁結果:"+forEntity.getBody());}}

?

網頁內容中中文亂碼解決方案:

原因:

當RestTemplate默認使用String存儲body內容時默認使用ISO_8859_1字符集。

解決:

配置StringHttpMessageConverter 消息轉換器,使用utf-8字符集。

修改RestTemplate的定義方法

  @Beanpublic RestTemplate restTemplate(){RestTemplate restTemplate = new RestTemplate(new OkHttp3ClientHttpRequestFactory());//獲取配置轉換器List<HttpMessageConverter<?>> messageConverters = restTemplate.getMessageConverters();//設置編碼格式messageConverters.set(1, new StringHttpMessageConverter(StandardCharsets.UTF_8));//將轉換器修改后的對象再賦值回去,對原來對象屬性進行修改restTemplate.setMessageConverters(messageConverters);return restTemplate;}

OkHttp3ClientHttpRequestFactory()

Ctrl+單擊點進去查看源碼

繼續跟進

?光標在接口上ClientHttpRequestFactory

快捷鍵Ctrl+Alt+鼠標單擊查看實現類,或者快捷鍵Ctrl+h,即可看到OkHttp3ClientHttpRequestFactory()

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/41733.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/41733.shtml
英文地址,請注明出處:http://en.pswp.cn/news/41733.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

js拼接字符串

在js中&#xff0c;你可以使用字符串拼接的方式創建新的字符串。 下面是一些常用的方法&#xff1a; 1、使用運算符&#xff1a; var str1 "Hello"; var str2 "World"; var result str1 " " str2; console.log(result); // 輸出&#xf…

【數據結構】鏈表常見題目

文章目錄 鏈表合并兩個有序鏈表反轉鏈表復制帶隨機指針的鏈表環形鏈表環形鏈表II相交鏈表移除鏈表元素鏈表中倒數第k個節點鏈表分割鏈表的回文結構鏈表的中間節點旋轉鏈表鏈表排序鏈表求和 (逆序求)鏈表求和II (正序求)重排鏈表奇偶鏈表反轉鏈表II <==> 鏈表內指定區間反…

(二)掌握最基本的Linux服務器用法——Linux下簡單的C/C++ 程序、項目編譯

1、靜態庫與動態庫 靜態庫(Static Library)&#xff1a;靜態庫是編譯后的庫文件&#xff0c;其中的代碼在編譯時被鏈接到程序中&#xff0c;因此它會與程序一起形成一個獨立的可執行文件。每個使用靜態庫的程序都會有自己的庫的副本&#xff0c;這可能會導致內存浪費。常用后綴…

opencv簡單使用

cv2庫安裝&#xff0c; conda install opencv-python注意cv2使用時&#xff0c;路徑不能有中文。&#xff08;不然會一直’None’ _ update # 處理中文路徑問題 def cv_imread(file_path): #使用之前需要導入numpy、cv2庫&#xff0c;file_path為包含中文的路徑return cv2.imd…

idea入門與maven配置的一些介紹

idea入門與maven配置的一些介紹 1.確保Java和Maven已安裝2.創建一個新的Maven項目3.導航到要創建項目的目錄配置Maven4.配置項目的pom.xml文件5.配置其他Tomcat和設置jdk6.構建和運行項目 關于idea入門基礎配置 步驟1&#xff1a;安裝IntelliJ IDEA 首先&#xff0c;從IntelliJ…

腳本語言與編譯語言的區別

文章目錄 一、語法差異二、執行方式差異三、應用領域差異四、總結 一、語法差異 腳本語言&#xff1a;腳本語言通常使用解釋器逐行執行&#xff0c;不需要事先編譯。它的語法相對簡單&#xff0c;易于學習和使用。常見的腳本語言有Python、JavaScript和Ruby等。 編譯語言&…

上海市青少年算法2023年2月月賽(丙組)

上海市青少年算法2023年2月月賽(丙組)T1 格式改寫 題目描述 給定一個僅由拉丁字符組成字符序列,需要改寫一些字符的大小寫,使得序列全部變成大寫或全部變成小寫,請統計最少修改多少個字符才能完成這項任務。 輸入格式 一個字符序列:保證僅由拉丁字符構成 輸出格式 單個整…

golang環境搭建

1. 下載、安裝 wget -O go.tar.gz https://golang.google.cn/dl/go1.21.0.linux-amd64.tar.gz sudo rm -rf /usr/local/go && sudo tar -zxvf go.tar.gz -C /usr/local2.創建工作目錄 cd mkdir -p go/{bin,pkg,src}3.添加環境變量 sudo vim /etc/profile寫入以下…

計算機競賽 python+大數據校園卡數據分析

0 前言 &#x1f525; 優質競賽項目系列&#xff0c;今天要分享的是 &#x1f6a9; 基于yolov5的深度學習車牌識別系統實現 &#x1f947;學長這里給一個題目綜合評分(每項滿分5分) 難度系數&#xff1a;4分工作量&#xff1a;4分創新點&#xff1a;3分 該項目較為新穎&am…

記錄一個編譯TubeTK時的報錯:at_check問題

在使用如下命令安裝TubeTK的cuda_nms時&#xff0c;報了一個錯誤&#xff0c;記錄一下這個錯誤和解決辦法 (base) redmeryredmery:~/Desktop/MOT/TubeTK/post_processing/nms$ python setup.py build_ext --inplace因為這個命令是在/home/redmery/Desktop/MOT/TubeTK/install/…

Talk | ACL‘23 杰出論文獎上海交通大學吳蔚琪:預訓練語言模型對本體知識的記憶與理解

本期為TechBeat人工智能社區第523期線上Talk&#xff01; 北京時間8月17日(周四)20:00&#xff0c;上海交通大學碩士研究生—吳蔚琪的Talk已準時在TechBeat人工智能社區開播&#xff01; 她與大家分享的主題是: “預訓練語言模型對本體知識的記憶與理解”&#xff0c;分享了預訓…

Python入門【TCP建立連接的三次握手、 TCP斷開連接的四次揮手、套接字編程實戰、 TCP編程的實現、TCP雙向持續通信】(二十七)

&#x1f44f;作者簡介&#xff1a;大家好&#xff0c;我是愛敲代碼的小王&#xff0c;CSDN博客博主,Python小白 &#x1f4d5;系列專欄&#xff1a;python入門到實戰、Python爬蟲開發、Python辦公自動化、Python數據分析、Python前后端開發 &#x1f4e7;如果文章知識點有錯誤…

【c語言】通訊錄(動態版+文件+背景音樂)含源碼

開飯了&#xff0c;之前寫的通訊錄&#xff0c;是否會有人覺得申請1000人的空間是不是有點用不上呀&#xff0c;怎么才能做到要多少申請多少個呢&#xff1f;&#xff1f;我們學完動態內存管理&#xff0c;和文件的相關操作&#xff0c;終于可以繼續完善我們的通訊錄了 船新版本…

機器學習基礎(三)

邏輯回歸 場景 垃圾郵件分類 預測腫瘤是良性還是惡性 預測某人的信用是否良好 正確率與召回率 正確率與召回率(Precision & Recall)是廣泛應用于信息檢索和統計學分類領域的兩個度量值,用來評價結果的質量。 一般來說,正確率就是檢索出來的條目有多少是正確的,召回率就…

salesforce創建定時任務時明明implements the Schedulable interface卻提示不是的解決方法

Apex類&#xff1a; global class TimesheetWeeklyJob implements Schedulable{global void execute( SchedulableContext SC ) {WeeklyTimesheetProcess.markSubmitted();WeeklyTimesheetProcess.createNewSheets();} }卻提示&#xff1a; Error: You must select an Apex cl…

數據結構:二叉樹的遞歸實現(C實現)

個人主頁 &#xff1a; 個人主頁 個人專欄 &#xff1a; 《數據結構》 《C語言》 文章目錄 前言一、樹的概念二、二叉樹二叉樹的概念二叉樹的性質 三、二叉樹鏈式結構實現二叉樹節點定義創建二叉樹節點遍歷二叉樹先序遍歷二叉樹(BinaryTreePrevOrder)中序遍歷二叉樹(BinaryTree…

Air780EG —— 合宙4G定位解決方案

定位模式&#xff1a; 外部單片機控制模式(常見于AT固件客戶)&#xff1a; 開機 -> 搜星 -> 定位成功 -> 上報 -> 關機 780E自行控制模式(常見于二次開發客戶&#xff0c;AT用戶也可以使用): 開機 -> 搜星 -> 定位成功 -> 模塊休眠&#xff0c;關閉GP…

億發創新中醫藥信息化解決方案,自動化煎煮+調劑,打造智能中藥房

傳統中醫藥行業逐步復興&#xff0c;同時互聯網科技和人工智能等信息科技助力中醫藥行業逐步實現數字化轉型。利用互聯網、物聯網、大數據等科技&#xff0c;實現現代科學與傳統中醫藥的結合&#xff0c;提供智能配方顆粒調配系統、中藥自動化調劑系統、中藥煎配智能管理系統、…

【從零學習python 】40.python魔法方法(一)

文章目錄 魔法方法1. __init__ 方法2. __del__ 方法3. __str__ 方法4. __repr__ 方法5. __call__ 方法進階案例 魔法方法 Python 里有一種方法&#xff0c;叫做魔法方法。Python 的類里提供的&#xff0c;兩個下劃線開始&#xff0c;兩個下劃線結束的方法&#xff0c;就是魔法…