Rumah >Java >javaTutorial >Bagaimana untuk Menghantar Permintaan HTTP di Java menggunakan HttpUrlConnection?

Bagaimana untuk Menghantar Permintaan HTTP di Java menggunakan HttpUrlConnection?

Susan Sarandon
Susan Sarandonasal
2024-12-21 00:09:11451semak imbas

How to Send HTTP Requests in Java using HttpUrlConnection?

Menghantar Permintaan HTTP dalam Java

Keupayaan untuk menghantar permintaan HTTP adalah penting untuk berinteraksi dengan pelayan jauh dan API web di Java. Satu cara untuk mengarang dan menghantar permintaan HTTP adalah melalui kelas java.net.HttpUrlConnection.

Mencipta Permintaan HTTP

Untuk membuat permintaan HTTP, anda boleh menggunakan langkah berikut:

  1. Buat objek URL: Ini mewakili URL sasaran permintaan HTTP.
  2. Buka sambungan: Gunakan kaedah openConnection() pada URL untuk mewujudkan sambungan ke pelayan.
  3. Tetapkan kaedah permintaan: Tentukan kaedah HTTP (cth., GET, POST, PUT) menggunakan setRequestMethod() kaedah.
  4. Tetapkan sifat permintaan: Konfigurasikan pelbagai sifat permintaan HTTP, seperti jenis kandungan, bahasa dan tetapan cache.
  5. Dayakan output: Tetapkan setDoOutput(true) untuk mendayakan penulisan data kepada permintaan body.

Menghantar Permintaan HTTP

Setelah permintaan dirumus, anda boleh menghantarnya ke pelayan menggunakan DataOutputStream:

  1. Tulis isi permintaan: Gunakan kaedah writeBytes() untuk menulis isi permintaan (jika mana-mana) ke strim output.
  2. Tutup strim output: Ini melengkapkan penghantaran permintaan.

Mendapatkan Respons HTTP

Setelah menghantar permintaan, anda boleh mendapatkan maklum balas daripada pelayan:

  1. Dapatkan strim input: Gunakan kaedah getInputStream() untuk mendapatkan semula aliran input respons.
  2. Baca respons: Gunakan BufferedReader untuk membaca kandungan baris aliran respons dengan baris.
  3. Menghuraikan badan respons: Badan respons mungkin mengandungi data sebenar yang dikembalikan oleh pelayan. Anda boleh menghuraikannya dengan sewajarnya.

Contoh Coretan Kod

Kod Java berikut menunjukkan cara menghantar permintaan HTTP POST menggunakan kelas HttpUrlConnection:

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();
      }
    }
  }
}

Atas ialah kandungan terperinci Bagaimana untuk Menghantar Permintaan HTTP di Java menggunakan HttpUrlConnection?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn