⚡ 编程实验室🏗️ HTML🎨 CSS⚡ JavaScript🐍 Python🗄️ SQL☕ Java⚛️ React💚 Vue🟢 Node.js⚙️ C语言🐘 PHP🐹 Go🔷 TypeScript🐬 MySQL🔧 C++🎯 C#🦀 Rust🅱️ Bootstrap💡 jQuery🎸 Django🍃 MongoDB👗 Sass🎪 Kotlin📊 R语言📋 XML📊 Excel🐘 PostgreSQL🐳 Docker🅰️ Angular🎮 游戏🏠 网站首页

Java HTTP Client:现代 API 调用

学习使用 java.net.http 包中的 HttpClient、HttpRequest 和 HttpResponse 发送同步/异步请求。 · 难度:入门 · +15XP

Java 11 引入的新 HTTP Client

替代了古老的 HttpURLConnection,支持 HTTP/2、WebSocket 和异步非阻塞调用,API 设计更流畅。

基本用法

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("https://api.example.com/data")) .header("Accept", "application/json") .GET() .build();

HttpResponse<String> response = client.send(request, BodyHandlers.ofString()); System.out.println(response.statusCode()); System.out.println(response.body());

异步请求

CompletableFuture<HttpResponse<String>> future = 
    client.sendAsync(request, BodyHandlers.ofString());
future.thenAccept(response -> {
    System.out.println(response.body());
});

POST 请求与 JSON

String json = """{"name":"Alice"}""";
HttpRequest postRequest = HttpRequest.newBuilder()
    .uri(URI.create("https://api.example.com/users"))
    .header("Content-Type", "application/json")
    .POST(HttpRequest.BodyPublishers.ofString(json))
    .build();

超时与重定向

配置方法
连接超时HttpClient.newBuilder().connectTimeout(Duration.ofSeconds(10))
跟随重定向.followRedirects(HttpClient.Redirect.NORMAL)
自定义 Executor.executor(Executors.newFixedThreadPool(4))

练习提示

在 starter_code 中,创建一个 GET 请求访问 https://httpbin.org/get 并打印响应状态码和 body。

Ctrl+Enter
🚀 升级VIP
解锁全部课程+AI助手

🏆 学习排行

加载中...

📊 统计

📖 133 篇
0 完成
🔥 0