HttpClient (java.net.http)

Daraja: O'rta

Java 11'dan boshlab standart kutubxonada zamonaviy `HttpClient` bor — tashqi kutubxonasiz HTTP so'rov yuborish mumkin. Uch qism: `HttpClient` (mijoz, bir marta yaratiladi va qayta ishlatiladi), `HttpRequest` (so'rov), `HttpResponse` (javob). Sinxron (`send`) va asinxron (`sendAsync`) rejimlari bor.

Tushuntirish

Java 11'dan boshlab standart kutubxonada zamonaviy `HttpClient` bor — tashqi kutubxonasiz HTTP so'rov yuborish mumkin. Uch qism: `HttpClient` (mijoz, bir marta yaratiladi va qayta ishlatiladi), `HttpRequest` (so'rov), `HttpResponse` (javob). Sinxron (`send`) va asinxron (`sendAsync`) rejimlari bor.

Kod misoli

HttpClient client = HttpClient.newBuilder()
        .connectTimeout(Duration.ofSeconds(10))
        .followRedirects(HttpClient.Redirect.NORMAL)
        .build();

HttpRequest req = HttpRequest.newBuilder()
        .uri(URI.create("https://api.github.com/users/torvalds"))
        .header("Accept", "application/json")
        .timeout(Duration.ofSeconds(15))
        .GET()
        .build();

HttpResponse<String> res = client.send(req, HttpResponse.BodyHandlers.ofString());

if (res.statusCode() == 200) {
    System.out.println(res.body());
} else {
    System.err.println("Xato kod: " + res.statusCode());
}

// POST + JSON
HttpRequest post = HttpRequest.newBuilder()
        .uri(URI.create("https://httpbin.org/post"))
        .header("Content-Type", "application/json")
        .POST(HttpRequest.BodyPublishers.ofString("{\"ism\":\"Ali\"}"))
        .build();

Keng tarqalgan xatolar

Mashqlar

Teglar: http, api, tarmoq

Interaktiv ko'rinish (viktorina, izohlar, tarix)