CodeGym/Java-Kurse/Modul 3: Java Professional/Eine Anfrage mit HttpRequest stellen

Eine Anfrage mit HttpRequest stellen

Verfügbar

Methoden newBuilder(), build()

Die Klasse HttpRequest wird zur Beschreibung einer http-Anfrage verwendet, was anhand des Namens leicht zu verstehen ist. Dieses Objekt macht selbst nichts, es enthält lediglich verschiedene Informationen über die http-Anfrage. Daher wird, wie Sie wahrscheinlich bereits erraten haben, auch die Builder-Vorlage zum Erstellen verwendet.

HttpRequest request = HttpRequest.newBuilder()
	.method1()
	.method2()
	.methodN()
    .build();

Zwischen den Aufrufen der Methoden newBuilder() und build() müssen Sie alle Methoden aufrufen, um ein Objekt zu erstellenHttpRequest.

Ein Beispiel für eine einfache Anfrage sieht so aus:

HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create(“http://codegym.cc”))
    .build();
HttpResponse response = client.send(request, HttpResponse.BodyHandlers.ofString());

Alle Methoden der HttpRequest- Klasse finden Sie unter dem Link in der offiziellen Dokumentation .

Und dann werden wir die beliebtesten davon analysieren.

uri()-Methode

Mit der Methode uri() können Sie den URI (oder die URL) festlegen, an den die http-Anfrage gesendet wird. Beispiel:

HttpRequest request = HttpRequest.newBuilder()
    .uri( URI.create(“http://codegym.cc”) )
    .build();

Übrigens können Sie diesen Code etwas kürzer machen, indem Sie den URI direkt an die newBuilder()- Methode übergeben :

HttpRequest request = HttpRequest.newBuilder( URI.create(“http://codegym.cc”) ).build();

Wichtig! Ein URI kann auf zwei Arten erstellt werden:

  • newURI(String)
  • URI.create(String)

Der zweite Weg ist vorzuziehen. Der erste Weg ist leider nicht sehr gut, da der URI-Konstruktor als public URI(String str) throws URISyntaxException deklariert ist und URISyntaxException eine geprüfte Ausnahme ist.

Methoden GET(), POST(), PUT(), DELETE()

Sie können die HTTP-Anforderungsmethode mit den folgenden Methoden festlegen:

  • GET()
  • POST()
  • PUT()
  • DELETE()

So würde eine einfache GET-Anfrage aussehen:

HttpRequest request = HttpRequest.newBuilder()
  .uri(new URI("https://codegym.cc"))
  .GET()
  .build();

version()-Methode

Sie können auch die HTTP-Protokollversion festlegen. Es gibt nur 2 Möglichkeiten:

  • HttpClient.Version.HTTP_1_1
  • HttpClient.Version.HTTP_2

Nehmen wir an, Sie möchten eine Anfrage mit dem HTTP/2-Protokoll erstellen, dann müssen Sie Folgendes schreiben:

HttpRequest request = HttpRequest.newBuilder()
   .uri(new URI("https://codegym.cc"))
   .version( HttpClient.Version.HTTP_2 )
   .GET()
   .build();

Ganz einfach, nicht wahr? :) :)

timeout()-Methode

Sie können auch die Ausführungszeit der Abfrage festlegen. Wenn die Prüfung erfolgreich ist und die Anforderung nie abgeschlossen wird, wird eine HttpTimeoutException ausgelöst .

Die Zeit selbst wird über das Objekt eingestelltDauervon der Java DateTime API. Beispiel:

HttpRequest request = HttpRequest.newBuilder()
   .uri(new URI("https://codegym.cc"))
   .timeout( Duration.of(5, SECONDS) )
   .GET()
   .build();

Das Vorhandensein dieser Methode zeigt, dass die Klassen HttpClient und HttpRequest eine Vielzahl von Aufgaben ausführen können. Stellen Sie sich vor, Sie führen eine Anfrage aus, und im Netzwerk ist etwas passiert, das 30 Sekunden gedauert hat. Es ist viel sinnvoller, eine Ausnahme sofort zu empfangen und richtig darauf zu reagieren.

header()-Methode

Sie können jeder Anfrage auch eine beliebige Anzahl von Headern hinzufügen. Und es ist so einfach wie alles andere. Dafür gibt es eine spezielle Methode - header() . Beispiel:

HttpRequest request = HttpRequest.newBuilder()
   .uri(new URI("https://codegym.cc"))
   .header("name1", "value1")
   .header("name2", "value2")
   .GET()
   .build();

Es gibt eine weitere alternative Möglichkeit, viele Header gleichzeitig festzulegen. Dies kann nützlich sein, wenn Sie beispielsweise eine Liste von Headern in ein Array konvertiert haben:

HttpRequest request = HttpRequest.newBuilder()
   .uri(new URI("https://codegym.cc"))
   .headers("name1", "value1", "name2", "value2")
   .GET()
   .build();

Alles Elementare ist einfach.

Kommentare
  • Beliebt
  • Neu
  • Alt
Du musst angemeldet sein, um einen Kommentar schreiben zu können
Auf dieser Seite gibt es noch keine Kommentare