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();
发现此代码有问题? 告诉我们。
📐

构建器 API

用于请求、标头和超时的流畅构建器。

异步支持

sendAsync() 返回 CompletableFuture,无需阻塞。

🔒

HTTP/2 支持

开箱即用支持 HTTP/2 和 TLS。

旧方式
HttpURLConnection
现代方式
HttpClient
自 JDK
11
难度
入门
现代 HTTP 客户端
可用

自 JDK 11 起广泛可用(2018 年 9 月)

HttpClient 支持 HTTP/1.1 和 HTTP/2、异步请求、WebSocket 以及请求/响应的 BodyHandler。与 HttpURLConnection 相比,它是一个重大改进。

分享 𝕏 🦋 in