I/O Начинающий

Использование встроенного HttpClient для чистых современных HTTP-запросов.

✕ Java 8
URL url = new URL("https://api.com/data");
HttpURLConnection con =
    (HttpURLConnection) url.openConnection();
con.setRequestMethod("GET");
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
// read lines, close streams...
✓ Java 11+
var client = HttpClient.newHttpClient();
var request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.com/data"))
    .build();
var response = client.send(
    request, BodyHandlers.ofString());
String body = response.body();
Заметили проблему в этом коде? Сообщите нам.
📐

Builder API

Текучий Builder для запросов, заголовков и таймаутов.

🔄

Поддержка HTTP/2

Встроенный HTTP/2 с мультиплексированием и Server Push.

Асинхронность

sendAsync() возвращает CompletableFuture.

Старый подход
HttpURLConnection
Современный подход
HttpClient
Начиная с JDK
11
Сложность
Начинающий
Современный HTTP-клиент
Доступно

Доступно в JDK 11 (сент. 2018)

HttpClient поддерживает HTTP/1.1 и HTTP/2, асинхронные запросы, WebSocket, пользовательские исполнители и пул соединений. Больше не нужно приводить URLConnection или вручную читать потоки InputStream.