Java 教程

Java 控制语句

面向对象编程

Java 内置类

Java 文件处理

Java 错误和异常

Java 多线程

Java 同步

Java 网络

Java 集合

Java 接口

Java 数据结构

Java 集合算法

高级 Java

Java 杂项

Java API 和框架

Java 类参考

Java 有用资源

Java - 标准 HttpClient



Java 标准 HttpClient

Java 9 中引入了增强的 HttpClient API 作为实验性功能。在 Java 11 中,HttpClient 现在成为标准。建议使用它来代替其他 HTTP 客户端 API,例如 Apache Http Client API。它功能非常丰富,现在基于 Java 的应用程序可以在不使用任何外部依赖项的情况下发出 HTTP 请求。

使用 Java HttpClient 的步骤

以下是使用 HttpClient 的步骤。

  • 使用 HttpClient.newBuilder() 实例创建 HttpClient 实例

  • 使用 HttpRequest.newBuilder() 实例创建 HttpRequest 实例

  • 使用 httpClient.send() 发出请求并获取响应对象。

HttpClient 示例

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>
广告

© . All rights reserved.