Inviare una richiesta http

Java:
Inviare una richiesta http

How to: (Come fare:)

import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

public class HttpExample {
    public static void main(String[] args) {
        HttpClient client = HttpClient.newHttpClient();
        HttpRequest request = HttpRequest.newBuilder()
            .uri(URI.create("https://api.example.com/data"))
            .build();
        
        client.sendAsync(request, HttpResponse.BodyHandlers.ofString())
            .thenApply(HttpResponse::body)
            .thenAccept(System.out::println)
            .join();
    }
}

Output:

{"name":"John Doe","occupation":"Java Developer"}

Deep Dive (Approfondimento)

Il concetto di invio di richieste HTTP esiste da quando il protocollo HTTP è stato introdotto all’inizio degli anni ‘90. In Java, abbiamo assistito a un’evoluzione, da HttpURLConnection fino alla recente HttpClient nell’API java.net.http, introdotta in Java 9 e migliorata nelle versioni successive, che semplifica le operazioni asincrone e supporta HTTP/2.

Alternatives (Alternative):

  • HttpURLConnection: meno moderno, più verboso.
  • Librerie terze parti: OkHttp, Apache HttpClient.

Dettagli implementativi:

  • HttpClient: supporta richieste GET, POST, PUT, DELETE, e altri metodi HTTP.
  • HttpRequest: costruisce la richiesta. Definisce URI, metodi, headers, e body.
  • HttpResponse: gestisce la risposta. Puoi recuperare status, headers e body.

See Also (Vedi Anche)