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