- Java 11 教程
- Java 11 - 主页
- Java 11 - 概述
- Java 11 - 环境设置
- Java 11 - 标准 HttpClient
- Java 11 - 编译免费启动
- Java 11 - 字符串 API
- Java 11 - 集合到数组
- Java 11 - 文件 API
- Java 11 - 可选类
- Java 11 - 非谓词
- Java 11 - lambda 中的 var
- Java 11 - 基于 Nest 的访问
- Java 11 - 删除/弃用的 API
- Java其他版本教程
- Java教程
- Java 8 教程
- Java 9 教程
- Java 10 教程
- Java 12 教程
- Java 13 教程
- Java 14 教程
- Java 15 教程
- Java 16 教程
- Java 11 有用资源
- Java 11 - 快速指南
- Java 11 - 有用的资源
- Java 11 - 讨论
Java 11 - 标准 HttpClient
Java 9 中引入了增强的 HttpClient API 作为实验性功能。在 Java 11 中,HttpClient 现在已成为标准。建议使用其他 HTTP 客户端 API,例如 Apache Http 客户端 API。它的功能非常丰富,现在基于 Java 的应用程序可以在不使用任何外部依赖项的情况下发出 HTTP 请求。
脚步
以下是使用 HttpClient 的步骤。
使用 HttpClient.newBuilder() 实例创建 HttpClient 实例
使用 HttpRequest.newBuilder() 实例创建 HttpRequest 实例
使用 httpClient.send() 发出请求并获取响应对象。
例子
import java.io.IOException; import java.net.URI; import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse; import java.time.Duration; public class APITester { public static void main(String[] args) { HttpClient httpClient = HttpClient.newBuilder() .version(HttpClient.Version.HTTP_2) .connectTimeout(Duration.ofSeconds(10)) .build(); try { HttpRequest request = HttpRequest.newBuilder() .GET() .uri(URI.create("https://www.google.com")) .build(); HttpResponse<String> response = httpClient.send(request, HttpResponse.BodyHandlers.ofString()); System.out.println("Status code: " + response.statusCode()); System.out.println("Headers: " + response.headers().allValues("content-type")); System.out.println("Body: " + response.body()); } catch (IOException | InterruptedException e) { e.printStackTrace(); } } }
输出
它将打印以下输出。
Status code: 200 Headers: [text/html; charset=ISO-8859-1] Body: <!doctype html> ... </html>