Java:
HTTP-pyynnön lähettäminen
How to: (Kuinka tehdä:)
Java tarjoaa java.net.http
-paketin HTTP-pyyntöjen lähettämiseen, joka sisältää HttpClient
, HttpRequest
ja HttpResponse
-luokat.
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.io.IOException;
import java.util.concurrent.ExecutionException;
public class HttpExample {
public static void main(String[] args) throws IOException, InterruptedException, ExecutionException {
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://www.example.com"))
.GET() // Voi olla GET, POST, PUT, DELETE jne.
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println("Status Code: " + response.statusCode());
System.out.println("Response Body:\n" + response.body());
}
}
Tuloste voi näyttää esimerkiksi tältä:
Status Code: 200
Response Body:
<!doctype html>...
Deep Dive (Sukellus syvemmälle):
Ennen java.net.http
-pakettia, ohjelmoijat käyttivät HttpURLConnection
-luokkaa tai ulkopuolisia kirjastoja, kuten Apache HttpClient. java.net.http
esiteltiin vasta Java 11:ssä, ja se teki HTTP-pyyntöjen käsittelystä yksinkertaisempaa ja modernimpaa.
HTTP-pyyntöjä voidaan lähettää synkronisesti tai asynkronisesti. Edellä oleva esimerkki käyttää synkronista tapaa, joka odottaa ja palauttaa vastauksen välittömästi. Asynkroninen lähetys käyttää CompletableFuture
-objektia ja antaa ohjelman jatkaa muiden tehtävien suorittamista, kunnes vastaus palautuu.
Eri HTTP-metodit palvelevat eri tarkoituksia. GET
pyytää dataa, POST
lähettää uutta dataa, PUT
päivittää olemassaolevaa dataa ja DELETE
poistaa sitä. Oikean metodin valinta perustuu siihen, mitä halutaan tehdä.