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

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

王林
王林원래의
2023-07-31 16:39:21880검색

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

Java 13에서는 HTTP 요청을 보내고 반환된 비동기 응답을 처리할 수 있는 모든 기능을 갖춘 HTTP 클라이언트를 제공하는 새로운 HttpClient API가 도입되었습니다. 이 새로운 HttpClient API는 사용이 매우 간단하고 유연하며 이전 HttpURLConnection보다 더 편리합니다.

먼저 Java 13 환경에서 새로운 HttpClient 인스턴스를 생성해야 합니다. 다음 코드를 사용하여 HttpClient를 만들 수 있습니다.

HttpClient httpClient = HttpClient.newHttpClient();

다음으로 생성된 HttpClient 개체를 사용하여 HTTP 요청을 보낼 수 있습니다. GET 요청, POST 요청 등을 보낼 수 있습니다. GET 요청 전송을 예로 들면 다음 코드 조각을 사용할 수 있습니다.

URI uri = URI.create("http://www.example.com");
HttpRequest request = HttpRequest.newBuilder()
                .uri(uri)
                .build();

위 코드에서는 요청된 URL을 나타내는 URI 객체를 생성하고 HttpRequest.newBuilder() 메서드를 사용하여 HttpRequest 객체를 생성합니다. . 그런 다음 HttpClient 개체의 sendAsync() 메서드를 사용하여 비동기 요청을 보내고 비동기 응답을 처리할 수 있는 CompletableFuture 개체를 가져올 수 있습니다.

CompletableFuture<HttpResponse<String>> future = httpClient.sendAsync(request, HttpResponse.BodyHandlers.ofString());

위 코드에서는 HttpClient 개체의 sendAsync() 메서드를 사용하여 요청을 보내고, HttpResponse.BodyHandlers.ofString() 개체를 전달하여 응답 처리 방법을 지정합니다(여기에서는 문자열 형식이 사용됨). . sendAsync() 메서드는 비동기 작업의 결과를 나타내는 CompletableFuture 개체를 즉시 반환합니다. 이 CompletableFuture 객체를 사용하여 비동기 응답을 처리할 수 있습니다.

CompletableFuture 객체의 get() 메서드를 호출하여 비동기 응답이 완료될 때까지 기다리는 것을 차단하고 응답 객체를 얻을 수 있습니다. 다음은 샘플 코드입니다.

try {
    HttpResponse<String> response = future.get();
    System.out.println("Response Code: " + response.statusCode());
    System.out.println("Response Body: " + response.body());
} catch (InterruptedException | ExecutionException e) {
    e.printStackTrace();
}

위 코드에서는 future.get() 메서드를 호출하여 비동기 응답 개체를 가져옵니다. 비동기 작업이 아직 완료되지 않은 경우 get() 메서드는 작업이 완료될 때까지 차단하고 기다립니다. 비동기 작업이 완료되면 HttpResponse 개체를 사용하여 응답 상태 코드와 응답 본문을 얻을 수 있습니다.

CompletableFuture 객체를 사용하는 것 외에도 콜백 함수를 사용하여 비동기 응답을 처리할 수도 있습니다. Java 13의 HttpClient API는 콜백 함수를 등록하는 두 가지 방법, 즉 thenApply() 및 thenAccept()를 제공합니다. 다음은 thenApply()를 사용하는 샘플 코드입니다.

CompletableFuture<HttpResponse<String>> future = httpClient.sendAsync(request, HttpResponse.BodyHandlers.ofString());
future.thenApply(response -> {
    System.out.println("Response Code: " + response.statusCode());
    System.out.println("Response Body: " + response.body());
    return response;
});

thenApply() 메서드를 사용하면 비동기 응답을 처리하는 콜백 함수를 정의할 수 있습니다. 비동기 응답이 완료되면 콜백 함수가 호출되며 콜백 함수에서 응답을 처리할 수 있습니다.

요약하자면, 새로운 HttpClient를 사용하여 Java 13에서는 HTTP 요청을 보내고 비동기 응답을 처리하는 것이 매우 간단합니다. HttpClient 개체를 생성하고 이를 사용하여 요청을 보낸 다음 CompletableFuture 개체 또는 콜백 함수를 통해 비동기 응답을 처리합니다. 이 새로운 HttpClient API는 웹 서비스와 더 쉽게 상호 작용할 수 있는 매우 유연하고 강력한 기능을 제공합니다. 동시에 더 나은 성능과 리소스 관리도 제공합니다.

이 문서의 샘플 코드가 Java 13의 새로운 HttpClient API를 시작하고 실제 프로젝트에서 역할을 수행하는 데 도움이 되기를 바랍니다.

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

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