Nowoczesny klient HTTP
Używaj wbudowanego HttpClient do czystych, nowoczesnych żądań HTTP.
Porównanie kodu
✕ 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();
Widzisz problem z tym kodem? Daj nam znać.
Dlaczego nowoczesne podejście wygrywa
API Builder
Płynny builder do żądań, nagłówków i limitów czasu.
Obsługa HTTP/2
Wbudowane HTTP/2 z multipleksowaniem i server push.
Gotowość asynchroniczna
sendAsync() zwraca CompletableFuture.
Stare podejście
HttpURLConnection
Nowoczesne podejście
HttpClient
Od JDK
11
Poziom trudności
Początkujący
Wsparcie JDK
Nowoczesny klient HTTP
Dostępne
Szeroko dostępne od JDK 11 (wrzesień 2018)
Jak to działa
HttpClient obsługuje HTTP/1.1 i HTTP/2, żądania asynchroniczne, WebSocket, niestandardowe executory i pulę połączeń. Koniec z rzutowaniem URLConnection i ręcznym odczytywaniem InputStream.
Powiązana dokumentacja
Dowód