Java 發送 HTTP POST請求教程

Java 發送 HTTP POST 請求的方法

使用 HttpURLConnection(原生 Java 支持)
創建一個 HttpURLConnection 對象,設置請求方法為 POST,并寫入請求體數據。以下是一個簡單示例:

import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;public class HttpPostExample {public static void main(String[] args) throws Exception {String url = "https://example.com/api";String postData = "param1=value1?m2=value2";URL obj = new URL(url);HttpURLConnection con = (HttpURLConnection) obj.openConnection();con.setRequestMethod("POST");con.setDoOutput(true);try (OutputStream os = con.getOutputStream()) {byte[] input = postData.getBytes("utf-8");os.write(input, 0, input.length);}int responseCode = con.getResponseCode();System.out.println("Response Code: " + responseCode);}
}

使用 HttpClient(Java 11+ 推薦)
HttpClient 是 Java 11 引入的現代化 HTTP 客戶端,支持異步和同步請求:

import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;public class HttpClientPostExample {public static void main(String[] args) throws Exception {HttpClient client = HttpClient.newHttpClient();String requestBody = "{\"key\":\"value\"}";HttpRequest request = HttpRequest.newBuilder().uri(URI.create("https://example.com/api")).header("Content-Type", "application/json").POST(HttpRequest.BodyPublishers.ofString(requestBody)).build();HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());System.out.println(response.body());}
}

使用第三方庫(如 OkHttp
OkHttp 是流行的第三方 HTTP 客戶端庫,簡化了請求處理:

import okhttp3.*;public class OkHttpPostExample {public static void main(String[] args) throws Exception {OkHttpClient client = new OkHttpClient();MediaType mediaType = MediaType.parse("application/json");String requestBody = "{\"key\":\"value\"}";Request request = new Request.Builder().url("https://example.com/api").post(RequestBody.create(requestBody, mediaType)).build();try (Response response = client.newCall(request).execute()) {System.out.println(response.body().string());}}
}

常見參數設置

  • 請求頭:通過 setRequestPropertyheader() 方法添加,如 Content-Type
  • 超時設置HttpURLConnection 使用 setConnectTimeout()HttpClient 通過 Builder 配置。
  • 表單數據:格式為 key1=value1&key2=value2,需設置 Content-Type: application/x-www-form-urlencoded
  • JSON 數據:設置 Content-Type: application/json,并發送 JSON 字符串。

錯誤處理

  • 檢查響應狀態碼(如 200 表示成功)。
  • 捕獲 IOException 處理網絡異常。
  • 使用 try-with-resources 確保資源釋放。

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

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

相關文章

計算機英語詳細總結

計算機英語作為信息技術領域的專用語言&#xff0c;融合了專業術語、縮寫、行業表達及技術文檔規范&#xff0c;是學習編程、從事 IT 工作的核心工具。以下從核心分類、應用場景、學習方法三方面詳細梳理&#xff1a;一、核心術語分類與高頻詞匯1. 編程語言與語法基礎基礎概念&…

「日拱一碼」045 機器學習-因果發現算法

目錄 基于約束的方法 (Constraint-based) 基于評分的方法 (Score-based) 基于函數因果模型的方法 (Functional Causal Models) 基于梯度的方法 (Gradient-based) 因果發現是機器學習中一個重要的研究方向&#xff0c;它旨在從觀測數據中推斷變量之間的因果關系 基于約束的…

S7-1200 串行通信介紹

S7-1200 串行通信S7-1200支持的串行通訊方式點對點&#xff08;PtP&#xff09;通信Modbus 主從通信USS 通信名稱CM 1241 RS232CM 1241 RS422/485CB 1241 RS485訂貨號6ES7241-1AH32-0XB06ES7241-1CH32-0XB06ES7241-1CH30-1XB0通訊口類型RS232RS422/RS485RS485波特率(bps)300 ;6…

達夢包含OR條件的SQL特定優化----INJECT-HINT優化方法

Time:2025/08/07Author:skatexg應用迭代發版須執行如下動作 1、按目標需求全面壓力測試&#xff0c;優化潛在慢SQL或設置特殊優化參數(如&#xff1a;OPTIMIZER_OR_NBEXP) 2、達夢數據庫有數據導入&#xff0c;必須收集統計信息達夢使用SF_INJECT_HINT系統函數對指定SQL增加HIN…

JSqlParser學習筆記 快速使用JSqlParser

文章目錄前言本章節源碼官方文檔信息認識JSqlParserHow it works? 它是如何工作的&#xff1f;知識點關于statement實際應用場景引入依賴Parser 解析SQL解析sql語句解析sql區分sql類型分析增刪改查語句查詢語句認識PlainSelect示范新增語句了解Insert常用方法示范更新語句刪除…

Godot ------ 中級人物血條制作01

Godot ------ 中級人物血條制作 引言 正文 傳統血條制作 方格血條制作 傳奇,暗黑破環神類血條顯示 引言 在此之前,我們分四篇介紹了 Godot 中人物血條的制作,但是我們用到的都是比較基礎的節點 ProgressBar,本文我們將介紹另外一種相對高級的節點 TextureProgressBar。 正…

《WebPages 類:構建高效網頁的基石》

《WebPages 類&#xff1a;構建高效網頁的基石》 引言 在互聯網高速發展的今天&#xff0c;網頁作為信息傳遞和交互的重要載體&#xff0c;其重要性不言而喻。而一個高效、美觀、易用的網頁&#xff0c;往往離不開一個優秀的網頁類的設計。本文將深入探討WebPages類的概念、特點…

直播預告|鴻蒙生態下的 Flutter 開發實戰

《開發者 面對面》堅果派特輯直播&#xff08;二&#xff09;來了&#xff01;在鴻蒙系統日益完善的今天&#xff0c;Flutter 開發者將迎來哪些新機遇&#xff1f;在 HarmonyOS 上開發 Flutter&#xff0c;如何實現高效適配與生態融合&#xff1f;本期「開發者面對面」堅果派特…

web前端結合Microsoft Office Online 在線預覽,vue實現(PPT、Word、Excel、PDF等)

web前端結合Microsoft Office Online 在線預覽&#xff0c;vue實現&#xff08;PPT、Word、Excel、PDF等&#xff09; 什么是 Microsoft Office Online 預覽服務 Microsoft Office Online 預覽服務是由微軟提供的免費在線文檔預覽工具&#xff0c;通過簡單的 URL 參數配置&am…

安卓手機用久了會出現卡頓,為什么?

安卓手機用久了出現卡頓&#xff0c;主要與內存不足、系統機制特性、硬件老化、軟件沖突與冗余、使用習慣不當五大核心因素相關。以下是具體原因及針對性解決方案&#xff1a;一、卡頓核心原因分析內存不足運行內存&#xff08;RAM&#xff09;被占用&#xff1a;安卓應用默認在…

以 Eland 玩轉 Elasticsearch 8.12 Learning-to-Rank

1 為什么要在 Elasticsearch 上做 LTR&#xff1f; 適用版本&#xff1a; Elasticsearch ≥ 8.12.0 前置條件&#xff1a; 需擁有包含 “Serverless LTR” 的訂閱等級&#xff08;詳見官方訂閱矩陣&#xff09; 技術棧&#xff1a; Elasticsearch Python Eland XGBoost / Li…

OpenCV入門:圖像處理基礎教程

OpenCV簡介 OpenCV&#xff08;Open Source Computer Vision Library&#xff09;是一個開源的計算機視覺和機器學習庫。它包含超過2500種優化算法&#xff0c;涵蓋圖像處理、物體識別、人臉檢測、3D重建、視頻分析等任務。 核心功能 圖像處理&#xff1a;濾波、邊緣檢測、幾…

影響內容傳播速度的因素有哪些?

內容的傳播速度是我們在衡量營銷效果時的重要指標。傳播速度越快&#xff0c;越能幫助品牌迅速覆蓋目標受眾&#xff0c;在短時間內提升影響力。影響內容傳播速度的方式來自多個方面&#xff0c;下面就讓我們一同來了解下這其中的因素。一、觀點價值觀點是否具有價值&#xff0…

css動態樣式

使用scss通過變量設置css動態樣式<template><div><!-- 方式一 --><p v-for"(item, index) in dataList" :key"index" :style"{--color: item.color}" >{{item.name}}</p><!-- 方式二 --><p v-for"(…

開源流媒體服務器ZLMediaKit 的Java Api實現的Java版ZLMediaKit流媒體服務器-二開視頻對話

安全性&#xff1a;使用了WSS&#xff08;WebSocket Secure&#xff09;協議確保通信安全 兼容性&#xff1a;支持現代瀏覽器的WebRTC功能 信令機制&#xff1a;通過WebSocket進行信令交換&#xff0c;確保連接建立 媒體傳輸&#xff1a;使用STUN服務器進行NAT穿透&#xff0c;…

mariadb10.3.35備份腳本

一、創建備份用戶[(none)]> create user buserlocalhost identified by tmrQ;[(none)]> GRANT RELOAD, PROCESS, LOCK TABLES, REPLICATION CLIENT ON *.* TO buserlocalhost;[(none)]> flush privileges;二、腳本# cat mysql_bask.sh #!/bin/bash # MariaDB 10.3.35…

W3D引擎游戲開發----從入門到精通【22】

配置完成基本DT物體項后&#xff0c;在這個DT物體項中開始添加這個玩家的動畫信息&#xff0c;如下所示。UseAnim設置是否使用動畫功能&#xff0c;這里開啟。AnimTypeN設置總共的動畫類型數&#xff0c;當前只有一個待機動畫&#xff0c;因此設置為1。AnimType1FrameN設置1號動…

在我國申請注冊的商標在國外可以用不!

近日一個網友找到普推知產商標老楊&#xff0c;問在我國申請注冊商標在新加坡和歐盟可以用不&#xff0c;當然用不成&#xff0c;根據商標法的地域性原則&#xff0c;商標權保護限于注冊地&#xff0c;馳名商標享有部分跨國保護&#xff0c;但是這個要有所在國相關法律證據。如…

在開發板上畫出一個2048棋盤的矩陣

#include “head.h"int* p lcd NULL; //顯示屏內存映射的起始地址int g lcd width; //LCD顯示屏的寬度int g lcd high ; //LCD顯示屏的高度int g lcd bpp; //每個像素點所占的比特位//int x:屏的X軸&#xff08;寬度、列&#xff09;坐標//int y:屏幕y軸&#xff08;高度、…

開源軟件與文化:從嬉皮士精神到數字時代的協同創新

開源軟件與文化&#xff1a;從嬉皮士精神到數字時代的協同創新 本文章由筆者使用提示詞驅動AI創作&#xff0c;并進行審閱。 文章目錄開源軟件與文化&#xff1a;從嬉皮士精神到數字時代的協同創新一、引言&#xff1a;開源的文化基因與技術革命二、開源軟件的文化根源&#x…