使用Java 11中的新的HTTP/2 Client來發送HTTP請求並處理回應
import java.net.URI; import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse; public class HttpClientExample { public static void main(String[] args) throws Exception { // 创建一个HTTP/2 Client HttpClient client = HttpClient.newHttpClient(); // 创建一个GET请求 HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("https://api.example.com/data")) .GET() .build(); // 发送请求并处理响应 HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString()); // 打印响应结果 System.out.println("Response Code: " + response.statusCode()); System.out.println("Response Body: " + response.body()); } }
在上面的範例程式碼中,我們首先建立了一個HttpClient對象,然後建立了一個GET請求,並透過send()方法發送請求並傳回一個HttpResponse物件。最後,我們可以透過HttpResponse物件來取得響應的狀態碼和響應體。
import java.net.URI; import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse; import java.net.http.HttpHeaders; import java.net.http.HttpResponse.BodyHandlers; public class HttpClientExample { public static void main(String[] args) throws Exception { // 创建一个HTTP/2 Client HttpClient client = HttpClient.newHttpClient(); // 创建一个POST请求 HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("https://api.example.com/data")) .header("Content-Type", "application/json") .POST(HttpRequest.BodyPublishers.ofString("{"key": "value"}")) .build(); // 发送请求并处理响应 HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString()); // 打印响应结果 System.out.println("Response Code: " + response.statusCode()); System.out.println("Response Body: " + response.body()); } }
在上面的範例程式碼中,我們首先建立了一個HttpClient對象,然後建立了一個POST請求,並透過send()方法發送請求並傳回一個HttpResponse物件。我們可以透過POST方法的參數來指定請求體的內容,例如,這裡我們發送了一個JSON字串作為請求體。
除了處理回應體,我們還可以取得其他的回應訊息,例如回應頭、回應狀態碼等。以下是一些處理回應的範例程式碼:
// 获取响应头 HttpHeaders headers = response.headers(); headers.map().forEach((k, v) -> System.out.println(k + ": " + v)); // 获取响应状态码 int statusCode = response.statusCode(); // 判断响应是否成功 if (statusCode == 200) { System.out.println("Request succeeded"); } else { System.out.println("Request failed"); }
以上程式碼展示如何取得回應頭、回應狀態碼,並根據狀態碼判斷請求是否成功。
以上是使用Java 11中的新的HTTP/2 Client來發送HTTP請求並處理回應的詳細內容。更多資訊請關注PHP中文網其他相關文章!