Heim >Java >javaLernprogramm >Wie sende ich HTTP-Anfragen in Java mit HttpUrlConnection?

Wie sende ich HTTP-Anfragen in Java mit HttpUrlConnection?

Susan Sarandon
Susan SarandonOriginal
2024-12-21 00:09:11451Durchsuche

How to Send HTTP Requests in Java using HttpUrlConnection?

HTTP-Anfragen in Java senden

Die Möglichkeit, HTTP-Anfragen zu senden, ist für die Interaktion mit Remote-Servern und Web-APIs in Java von entscheidender Bedeutung. Eine Möglichkeit, HTTP-Anfragen zu verfassen und zu übertragen, ist die Klasse java.net.HttpUrlConnection.

Erstellen der HTTP-Anfrage

Um eine HTTP-Anfrage zu erstellen, können Sie die verwenden Folgende Schritte:

  1. Erstellen Sie ein URL-Objekt: Dies stellt die Ziel-URL dar der HTTP-Anfrage.
  2. Eine Verbindung öffnen:Verwenden Sie die openConnection()-Methode auf der URL, um eine Verbindung zum Server herzustellen.
  3. Anfragemethode festlegen : Geben Sie die HTTP-Methode (z. B. GET, POST, PUT) mit setRequestMethod() an. Methode.
  4. Anfrageeigenschaften festlegen:Konfigurieren Sie verschiedene Eigenschaften der HTTP-Anfrage, wie Inhaltstyp, Sprache und Cache-Einstellungen.
  5. Ausgabe aktivieren:Setzen Sie setDoOutput(true) ein, um das Schreiben von Daten in den Anforderungstext zu ermöglichen.

Senden des HTTP Anfrage

Sobald die Anfrage formuliert ist, können Sie sie mit einem DataOutputStream an den Server senden:

  1. Anfragetext schreiben: Verwenden Sie writeBytes( )-Methode, um den Anforderungstext (falls vorhanden) in den Ausgabestream zu schreiben.
  2. Schließen Sie die Ausgabe stream: Damit ist das Senden der Anfrage abgeschlossen.

Abrufen der HTTP-Antwort

Nach dem Senden der Anfrage können Sie die Antwort vom Server erhalten:

  1. Eingabestream abrufen: Verwenden Sie die Methode getInputStream(), um den Eingabestream von abzurufen die Antwort.
  2. Antwort lesen: Verwenden Sie einen BufferedReader, um den Inhalt des Antwortstroms Zeile für Zeile zu lesen.
  3. Antworttext analysieren: Der Der Antworttext kann die tatsächlichen vom Server zurückgegebenen Daten enthalten. Sie können es entsprechend analysieren.

Beispielcode-Snippet

Der folgende Java-Code zeigt, wie eine HTTP-POST-Anfrage mithilfe der HttpUrlConnection-Klasse gesendet wird:

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

Das obige ist der detaillierte Inhalt vonWie sende ich HTTP-Anfragen in Java mit HttpUrlConnection?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn