首頁 >Java >java教程 >如何在 Java 中使用 JSON 負載發出 HTTP POST 請求?

如何在 Java 中使用 JSON 負載發出 HTTP POST 請求?

Barbara Streisand
Barbara Streisand原創
2024-12-09 19:25:11139瀏覽

How to Make HTTP POST Requests with JSON Payloads in Java?

Java 中使用JSON 的HTTP POST:綜合指南

介紹

介紹

問題陳述

您希望發送HTTP POST 請求到URL(例如,「www.site.com」),該URL 需要標記為「詳細資料」的JSON 負荷(例如,{“name”: “我的名字”,“年齡”:“20”})。但是,您無法在 JSON Javadocs 中找到 POST 方法。

解決方案

要在Java 中使用JSON 執行HTTP POST 請求,請按照以下步驟操作:

  1. 集成Apache HttpClient庫:
  2. 要發出HTTP 請求,您需要Apache HttpClient 函式庫。您可以從 Maven 中央儲存庫取得它。
  3. 建立 HttpPost 要求:
  4. 使用所需的 URL 實例化 HttpPost 物件。
  5. 設定Content-Type 標頭:
  6. 設定「Content-Type」標頭以指示您正在傳送JSON data.
  7. 建立一個StringEntity :
  8. 建構一個StringEntity 物件並將JSON 負載作為字串傳遞給它。
  9. 執行請求:
  10. 使用HttpClient透過準備好的HttpPost和StringEntity執行HTTP POST請求

範例

import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.HttpClientBuilder;

public class HttpPostWithJson {

    public static void main(String[] args) {
        // HttpClient httpClient = new DefaultHttpClient(); // Deprecated
        HttpClient httpClient = HttpClientBuilder.create().build();
        try {
            HttpPost request = new HttpPost("http://yoururl");
            String jsonPayload = "{\"name\":\"xyz\",\"age\":\"20\"}";
            StringEntity params = new StringEntity(jsonPayload);
            request.addHeader("content-type", "application/json");
            request.setEntity(params);
            HttpResponse response = httpClient.execute(request);
        } catch (Exception ex) {
            // Handle exception
        } finally {
            // HttpClient httpClient.getConnectionManager().shutdown(); // Deprecated
        }
    }
}
以下程式碼片段提供了帶有JSON 負載的HTTP POST請求的範例:

注意:

程式碼中已棄用的方法已被替換為現代的方法

透過執行以下步驟並查看提供的程式碼範例,您可以在Java 中有效地使用JSON 有效負載發出HTTP POST 請求,從而實現與基於JSON 的API 的無縫資料交換。

以上是如何在 Java 中使用 JSON 負載發出 HTTP POST 請求?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn