>  기사  >  Java  >  Java 11의 새로운 HttpClient를 사용하여 비동기 HTTP 요청을 보내고 응답을 처리합니다.

Java 11의 새로운 HttpClient를 사용하여 비동기 HTTP 요청을 보내고 응답을 처리합니다.

WBOY
WBOY원래의
2023-07-31 14:24:311925검색

Java 11의 새로운 HttpClient를 사용하여 비동기 HTTP 요청을 보내고 응답을 처리하세요.

Java 11에서는 새로운 HttpClient 클래스가 도입되어 HTTP 요청을 보내고 응답을 처리하는 강력한 기능을 제공합니다. 이전 HttpURLConnection과 비교하여 새로운 HttpClient는 사용하기 쉽고 비동기 작업을 지원하므로 동시 요청을 보다 효율적으로 처리할 수 있습니다. 이 문서에서는 Java 11의 새로운 HttpClient를 사용하여 비동기 HTTP 요청을 보내고 응답을 처리하는 방법을 소개합니다.

먼저 HttpClient.newBuilder() 메서드를 통해 생성할 수 있는 HttpClient 객체를 생성해야 합니다. HttpClient 개체를 생성할 때 시간 초과, 프록시 등과 같은 일부 특정 매개 변수를 지정할 수 있습니다. 다음은 HttpClient 개체를 생성하는 샘플 코드입니다.

import java.net.http.HttpClient;

HttpClient httpClient = HttpClient.newBuilder()
        .connectTimeout(Duration.ofSeconds(10))
        .build();

다음으로 HttpClient 개체를 사용하여 HTTP 요청을 보낼 수 있습니다. HttpClient에는 GET, POST, PUT의 세 가지 요청 유형이 있습니다. HttpRequest.newBuilder() 메소드를 사용하여 HttpRequest 객체를 생성하고 요청된 URL, 메소드, 요청 헤더 및 기타 매개변수를 지정할 수 있습니다. 다음은 GET 요청을 보내는 샘플 코드입니다.

import java.net.http.HttpRequest;
import java.net.URI;

// 发送GET请求
HttpRequest getRequest = HttpRequest.newBuilder()
        .uri(URI.create("http://example.com/api"))
        .GET()
        .build();

// 发送异步请求
httpClient.sendAsync(getRequest, HttpResponse.BodyHandlers.ofString())
        .thenApply(HttpResponse::body)
        .thenAccept(System.out::println);

위 코드에서는 HttpRequest.Builder의 uri 메서드를 통해 요청된 URL을 지정하고 GET 메서드를 사용하여 HttpRequest 개체를 생성합니다. 그런 다음 HttpClient의 sendAsync 메서드를 사용하여 요청을 보내고 HttpResponse.BodyHandlers.ofString()을 사용하여 응답 처리 방법을 지정합니다. 마지막으로 thenApply 및 thenAccept 메서드를 사용하여 응답 콘텐츠를 각각 처리했습니다.

GET 요청 외에도 POST 및 PUT 요청을 보낼 수도 있습니다. POST 요청을 보내는 샘플 코드는 다음과 같습니다.

import java.net.http.HttpRequest;
import java.net.URI;
import java.net.http.HttpRequest.BodyPublishers;

// 发送POST请求
HttpRequest postRequest = HttpRequest.newBuilder()
        .uri(URI.create("http://example.com/api"))
        .header("Content-Type", "application/json")
        .POST(BodyPublishers.ofString("{"key": "value"}"))
        .build();

// 发送异步请求
httpClient.sendAsync(postRequest, HttpResponse.BodyHandlers.ofString())
        .thenApply(HttpResponse::body)
        .thenAccept(System.out::println);

위 코드에서는 HttpRequest.Builder의 헤더 메소드를 통해 요청 헤더의 Content-Type을 application/json으로 지정하고, POST 방법. 그런 다음 HttpClient의 sendAsync 메서드를 사용하여 요청을 보내고 HttpResponse.BodyHandlers.ofString()을 사용하여 응답을 처리하는 방법을 지정했습니다. 마지막으로 thenApply 및 thenAccept 메서드를 사용하여 응답 콘텐츠를 각각 처리했습니다.

요청을 보내고 응답을 처리하는 것 외에도 HttpClient는 프록시 설정, HTTP 인증 등과 같은 다른 유용한 방법도 제공합니다. 자세한 내용은 공식 Java 문서를 참고하세요.

요약하자면, Java 11의 새로운 HttpClient 클래스는 HTTP 요청을 보내고 응답을 처리하는 보다 편리하고 효율적인 방법을 제공합니다. 새로운 HttpClient 클래스를 사용하면 비동기식 GET, POST 및 PUT 요청을 쉽게 보내고 간결한 코드를 사용하여 응답을 처리할 수 있습니다. 이를 통해 개발자는 동시 요청을 보다 효율적으로 처리하고 애플리케이션 성능을 향상시킬 수 있습니다.

참조 링크:

  • [Java 11 공식 문서](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/package -summary.html)

위 내용은 Java 11의 새로운 HttpClient를 사용하여 비동기 HTTP 요청을 보내고 응답을 처리합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.