Hutool 發送 HTTP 請求的幾種常見寫法

最簡單的 GET 請求:

String result = HttpUtil.get("https://www.baidu.com");

帶參數的 GET 請求:

// 方法1: 直接拼接URL參數
String result = HttpUtil.get("https://www.baidu.com?name=張三&age=18");// 方法2: 使用 HashMap 構建參數
HashMap<String, Object> params = new HashMap<>();
params.put("name", "張三");
params.put("age", "18");
String result = HttpUtil.get("https://www.baidu.com", params);

POST 請求:

// 簡單POST
String result = HttpUtil.post("https://www.baidu.com", "body content");// 帶表單參數的POST
HashMap<String, Object> params = new HashMap<>();
params.put("name", "張三");
params.put("age", "18");
String result = HttpUtil.post("https://www.baidu.com", params);

發送 JSON:

HashMap<String, Object> paramMap = new HashMap<>();
paramMap.put("name", "張三");
paramMap.put("age", 18);String result = HttpRequest.post("https://www.baidu.com").header("Content-Type", "application/json").body(JSONUtil.toJsonStr(paramMap)).execute().body();

高度自定義的請求:

HttpRequest request = HttpRequest.post("https://www.baidu.com").header("Authorization", "Bearer token123").header("Custom-Header", "value").timeout(20000)  //超時時間20秒.form(params)    //表單參數.cookie("sessionId", "abc123");HttpResponse response = request.execute();
String result = response.body();
int status = response.getStatus();

文件上傳:

HashMap<String, Object> params = new HashMap<>();
params.put("file", FileUtil.file("path/file.jpg"));
String result = HttpUtil.post("https://www.baidu.com/upload", params);

處理響應:

HttpResponse response = HttpRequest.get("https://www.baidu.com").execute();
// 獲取響應狀態碼
int status = response.getStatus();
// 獲取響應頭
String contentType = response.header("Content-Type");
// 獲取響應體
String body = response.body();
// 獲取Cookies
List<HttpCookie> cookies = response.getCookies();

設置代理:

HttpRequest.get("https://www.baidu.com").setProxy(new Proxy(Proxy.Type.HTTP, new InetSocketAddress("127.0.0.1", 8888))).execute();

請求建議:

  1. 建議在生產環境中設置合適的超時時間
  2. 對于大量請求,使用 HttpUtil.createGet() 或 HttpUtil.createPost() 預創建請求對象
  3. 處理響應時注意異常處理
  4. 如果需要復用連接,考慮使用 HttpUtil.createHttp() 創建客戶端

錯誤處理示例:

try {HttpResponse response = HttpRequest.get("https://www.baidu.com").timeout(20000).execute();if (response.isOk()) {String result = response.body();// 處理正常響應}
} catch (HttpException e) {// 處理超時等網絡異常e.printStackTrace();
} catch (Exception e) {// 處理其他異常e.printStackTrace();
}

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

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

相關文章

獲取用戶詳細信息-ThreadLocal優化

Thread全局接口可用&#xff0c;不用再重復編寫。所以為了代碼的復用&#xff0c;使用Thread。把之前的內容&#xff08;函數的參數和map與username&#xff09;注釋掉&#xff0c;換為Thread傳過來的內容&#xff08;map與username&#xff09;。 因為Thread需要在攔截器里面…

THUCNews解壓/THUCNews數據集解壓出問題

省流&#xff1a;使用zip64進行解壓&#xff0c;文件數目太多windows默認zip16裝不下 我在使用THUCNews中文文本數據集時出現了問題&#xff0c;原數據集解壓后應該包含以下兩個文件夾: 其中THUCNews文件夾下有以新聞類別命名的子文件。官網下載的是一個1.56GB的zip壓縮包 而我…

MySQL使用通用二進制文件安裝到Unix/Linux

Oracle提供了一組MySQL的二進制發行版。其中包括用于許多平臺的壓縮tar文件&#xff08;擴展名為.tar.xz的文件&#xff09;形式的通用二進制發行版&#xff0c;以及用于選定平臺的特定平臺包格式的二進制文件。 本節介紹在Unix/Linux平臺上從壓縮的tar文件二進制分布安裝MySQ…

安卓/system/bin下命令中文說明(AI)

ATFWD-daemon&#xff1a;AT指令轉發守護進程&#xff0c;用于將AT指令從應用層轉發到調制解調器。 PktRspTest&#xff1a;數據包響應測試工具。 StoreKeybox&#xff1a;存儲密鑰盒工具&#xff0c;用于安全地存儲加密密鑰。 WifiLogger_app&#xff1a;WiFi日志記錄應用&…

Git操作總結

可以直接看實踐 總結自施磊老師課程 Git與SVN對比 svn操作流程 寫代碼。 從服務器拉回服務器的當前版本庫&#xff0c;并解決服務器版本庫與本地代碼的沖突。 將本地代碼提交到服務器。 Git操作流程 寫代碼&#xff0c; 然后添加&#xff08;add&#xff09;到暫存區。 …

直流開關電源技術及應用二

文章目錄 8 PFC8.1 基本概念8.1.1 功率因數8.1.2 功率因數偏低帶來的影響8.1.3 特點 8.2 有源功率因數校正原理8.2.1不連續工作模式的矯正原理恒頻控制技術控制目標控制關鍵要素控制過程實現方式公式Boost電路和boost pfc電路的聯系和區別聯系區別 恒導通時間控制 8.2.2 連續工…

UNI-APP_i18n國際化引入

官方文檔&#xff1a;https://uniapp.dcloud.net.cn/tutorial/i18n.html vue2中使用 1. 新建文件 locale/index.js import en from ./en.json import zhHans from ./zh-Hans.json import zhHant from ./zh-Hant.json const messages {en,zh-Hans: zhHans,zh-Hant: zhHant }…

typora+picgo core+minio自動上傳圖片

1. 在服務器上安裝docker版本minio 創建/docker/minio文件夾 mkdir -p /docker/minio在此文件夾創建docker-compose.yml version: "3.5" services:minio:image: quay.io/minio/minio:latestcontainer_name: minioprivileged: truerestart: alwaysports:# API接口訪…

論文筆記:DepthLab: From Partial to Complete

是一篇很精煉的論文&#xff0c;不知道咋總結了&#xff0c;就差全文翻譯了&#xff0c;不過在這里我主要關注3D部分&#xff0c;因為他的pipeline是基于SD的&#xff0c;框圖也比較清晰易懂&#xff0c;非常細節的內容可以回頭看論文&#xff0c;哈哈哈&#xff0c;給作者大佬…

LeetCode--排序算法(堆排序、歸并排序、快速排序)

排序算法 歸并排序算法思路代碼時間復雜度 堆排序什么是堆&#xff1f;如何維護堆&#xff1f;如何建堆&#xff1f;堆排序時間復雜度 快速排序算法思想代碼時間復雜度 歸并排序 算法思路 歸并排序算法有兩個基本的操作&#xff0c;一個是分&#xff0c;也就是把原數組劃分成…

ShardingSphere-Proxy分表場景:go測試案例

接續上篇文章《ShardingSphere-Proxy分表場景測試案例》 go測試用例&#xff1a; package mainimport ("fmt""math/rand""time""github.com/bwmarrin/snowflake""gorm.io/driver/mysql""gorm.io/gorm""gor…

主流在售AI電子寵物產品

市面上已經有許多類型的AI電子寵物產品&#xff0c;它們各具特色&#xff0c;旨在提供情感陪伴、教育娛樂以及智能互動等功能。以下是幾款在市場上較為知名的AI電子寵物玩具&#xff0c;涵蓋了不同的形態和技術特點&#xff1a; 1. Moflin 制造商&#xff1a;日本消費電子公司…

Debian-linux運維-docker安裝和配置

騰訊云搭建docker官方文檔&#xff1a;https://cloud.tencent.com/document/product/213/46000 阿里云安裝Docker官方文檔&#xff1a;https://help.aliyun.com/zh/ecs/use-cases/install-and-use-docker-on-a-linux-ecs-instance 天翼云常見docker源配置指導&#xff1a;htt…

【機器學習 | 數據挖掘】時間序列算法

時間序列是按時間順序排列的、隨時間變化且相互關聯的數據序列。分析時間序列的方法構成數據分析的一個重要領域&#xff0c;即時間序列分析。以下是對時間序列算法的詳細介紹&#xff1a; 一、時間序列的分類 時間序列根據所研究的依據不同&#xff0c;可有不同的分類&#…

Qt6.8.1 Mingw13.1 編譯opencv4.10時cannot convert ‘char*‘ to ‘LPWSTR

當選擇build_world時出錯 G:\ForOpencv4.10\opencv-4.10.0\modules\core\src\utils\filesystem.cpp: In function cv::String cv::utils::fs::getCacheDirectory(const char*, const char*): G:\ForOpencv4.10\opencv-4.10.0\modules\core\src\utils\filesystem.cpp:442:43: e…

MIT S081 Lab 2 System Calls

Lab鏈接 一 實現trace功能 1 題目要求 In this assignment you will add a system call tracing feature that may help you when debugging later labs. You’ll create a new trace system call that will control tracing. It should take one argument, an integer “ma…

[Linux] 服務器CPU信息

&#xff08;1&#xff09;查看CPU信息&#xff08;型號&#xff09; cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c輸出&#xff1a;可以看到有128個虛擬CPU核心&#xff0c;型號是后面一串 128 Intel(R) Xeon(R) Platinum 8336C CPU 2.30GHz&#xff08;2&…

通過無障礙服務(AccessibilityService)實現Android設備全局水印顯示

一、無障礙功能簡介 首先我們先來了解下無障礙功能的官方介紹&#xff1a; 無障礙服務僅應用于幫助殘障用戶使用 Android 設備和應用。它們在后臺運行&#xff0c;并在觸發 AccessibilityEvents 時接收系統的回調。此類事件表示用戶界面中的某些狀態轉換&#xff0c;例如焦點已…

java中多線程的一些常見操作

Java 中的多線程是通過并發編程來提高應用程序的效率和響應速度。Java 提供了多個機制和類來支持多線程編程&#xff0c;包括繼承 Thread 類、實現 Runnable 接口、使用線程池等。以下是 Java 中一些常見的多線程操作和應用場景。 1. 創建線程 1.1 通過繼承 Thread 類創建線程…

使用 Docker 搭建 Hadoop 集群

1.1. 啟用 WSL 與虛擬機平臺 1.1.1. 啟用功能 啟用 WSL并使用 Moba 連接-CSDN博客 1.2 安裝 Docker Desktop 最新版本鏈接&#xff1a;Docker Desktop: The #1 Containerization Tool for Developers | Docker 指定版本鏈接&#xff1a;Docker Desktop release notes | Do…