首頁 >Java >java教程 >如何使用 HttpUrlConnection 在 Java 中傳送 HTTP 請求?

如何使用 HttpUrlConnection 在 Java 中傳送 HTTP 請求?

Susan Sarandon
Susan Sarandon原創
2024-12-21 00:09:11449瀏覽

How to Send HTTP Requests in Java using HttpUrlConnection?

在 Java 中發送 HTTP 請求

發送 HTTP 請求的能力對於用 Java 與遠端伺服器和 Web API 進行互動至關重要。編寫和傳輸 HTTP 請求的一種方法是透過 java.net.HttpUrlConnection 類別。

建立HTTP 請求

要建立HTTP 請求,您可以使用下列步驟:

  1. 建立URL 物件: 這代表目標HTTP 請求的URL。
  2. 開啟連線: 使用 URL 上的 openConnection() 方法建立與伺服器的連線。
  3. 設定請求method: 使用setRequestMethod() 指定HTTP 方法(例如GET、POST、PUT)
  4. 設定請求屬性:設定HTTP 請求配置的各種屬性,例如內容類型、語言和快取設定。
  5. 啟用輸出: 設定setDoOutput(true) 以啟用向請求寫入資料body.

發送HTTP 請求

發送HTTP 請求

制定請求後,您可以使用DataOutputStream將其傳送至伺服器:
  • 寫入請求體:
  • 使用writeBytes()方法寫入請求體(如果有)到輸出流。
  • 關閉輸出流: 這樣就完成了請求的發送。

    取得HTTP 回應

      傳送請求後,您可以取得來自伺服器:
    1. 取得輸入流:
    2. 使用getInputStream() 方法檢索回應的輸入流。
    3. 讀取回應:
    4. 使用BufferedReader 讀取回應流行的內容line.
    5. 解析回應正文:
    回應可能包含伺服器傳回的實際正文數據。您可以相應地解析它。

    範例程式碼片段

    import java.net.HttpURLConnection;
    import java.net.URL;
    import java.io.DataOutputStream;
    import java.io.InputStream;
    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.io.IOException;
    
    public class HttpPostExample {
    
      public static void main(String[] args) {
        String targetURL = "https://example.com/api/endpoint";
        String urlParameters = "key1=value1&key2=value2";
    
        HttpURLConnection connection = null;
    
        try {
          URL url = new URL(targetURL);
          connection = (HttpURLConnection) url.openConnection();
          connection.setRequestMethod("POST");
          connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
          connection.setRequestProperty("Content-Length", Integer.toString(urlParameters.getBytes().length));
          connection.setDoOutput(true);
    
          DataOutputStream wr = new DataOutputStream(connection.getOutputStream());
          wr.writeBytes(urlParameters);
          wr.close();
    
          InputStream is = connection.getInputStream();
          BufferedReader rd = new BufferedReader(new InputStreamReader(is));
          StringBuilder response = new StringBuilder();
          String line;
          while ((line = rd.readLine()) != null) {
            response.append(line);
            response.append('\r');
          }
          rd.close();
          System.out.println(response.toString());
        } catch (IOException e) {
          e.printStackTrace();
        } finally {
          if (connection != null) {
            connection.disconnect();
          }
        }
      }
    }
    以下 Java 程式碼示範如何使用 HttpUrlConnection 類別傳送 HTTP POST 要求:

    以上是如何使用 HttpUrlConnection 在 Java 中傳送 HTTP 請求?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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