Java 11 标准HttpClient

来源:这里教程网 时间:2026-02-17 21:22:17 作者:

Java 11 标准HttpClient

Java 9中,引入了一个增强版的HttpClient API作为实验性功能。随着Java 11的推出,现在HttpClient已成为标准。建议使用它而不是其他HTTP客户端API,如Apache Http Client 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: 200Headers: [text/html; charset=ISO-8859-1]Body: <!doctype html>...</html>

相关推荐