РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1102 of 1163 menu

Метод executor

Метод executor класса HttpClient.Builder задает исполнителя (Executor), который будет использоваться для выполнения асинхронных HTTP-запросов. В параметр метода мы передаем объект Executor. Если исполнитель не задан, клиент создает собственный исполнитель по умолчанию. Метод возвращает тот же самый объект HttpClient.Builder, что позволяет строить цепочку вызовов.

Синтаксис

builder.executor(executor)

Пример

Давайте создадим HTTP-клиент с собственным исполнителем на основе пула из одного потока и выполним запрос:

import java.net.URI; import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class Main { public static void main(String[] args) throws Exception { ExecutorService executor = Executors.newSingleThreadExecutor(); HttpClient client = HttpClient.newBuilder() .executor(executor) .build(); HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("https://example.com")) .GET() .build(); HttpResponse<String> res = client.send( request, HttpResponse.BodyHandlers.ofString() ); System.out.println(res.statusCode()); executor.shutdown(); } }

Результат выполнения кода:

200

Пример

Давайте выполним асинхронный запрос с исполнителем из четырех потоков и выведем код ответа:

import java.net.URI; import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class Main { public static void main(String[] args) throws Exception { ExecutorService executor = Executors.newFixedThreadPool(4); HttpClient client = HttpClient.newBuilder() .executor(executor) .build(); HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("https://example.com")) .GET() .build(); CompletableFuture<HttpResponse<String>> future = client.sendAsync( request, HttpResponse.BodyHandlers.ofString() ); HttpResponse<String> res = future.get(); System.out.println(res.statusCode()); executor.shutdown(); } }

Результат выполнения кода:

200

Смотрите также

  • класс HttpClient.Builder,
    который создает и настраивает HTTP-клиент
  • метод build,
    который создает объект HttpClient
  • метод sendAsync,
    который отправляет запрос асинхронно
  • метод send,
    который отправляет запрос синхронно
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить