Modern HTTP istemcisi
Temiz, modern HTTP istekleri için yerleşik HttpClient'ı kullanın.
Kod Karşılaştırması
✕ 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();
Bu kodda bir sorun mu gördünüz? Bize bildirin.
Modern yöntem neden daha iyi
Builder API
İstekler, başlıklar ve zaman aşımları için akıcı builder.
HTTP/2 desteği
Çoklama ve sunucu push ile yerleşik HTTP/2.
Asenkrona hazır
sendAsync(), CompletableFuture döndürür.
Eski Yaklaşım
HttpURLConnection
Modern Yaklaşım
HttpClient
JDK'dan itibaren
11
Zorluk
Başlangıç
JDK Desteği
Modern HTTP istemcisi
Mevcut
JDK 11'den itibaren geniş çapta kullanılabilir (Eylül 2018)
Nasıl çalışır
HttpClient, HTTP/1.1 ve HTTP/2, asenkron istekler, WebSocket, özel executor'lar ve bağlantı havuzlamayı destekler. Artık URLConnection cast etmeye veya InputStream'leri manuel olarak okumaya gerek yoktur.
İlgili Belgeler