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

Метод connectTimeout

Метод connectTimeout класса HttpClient.Builder задает максимальное время, в течение которого клиент будет пытаться установить соединение с сервером. Если соединение не будет установлено за указанное время, будет выброшено исключение HttpConnectTimeoutException. В первый параметр мы передаем длительность таймаута, во второй - единицу измерения времени (например, TimeUnit.SECONDS или TimeUnit.MILLISECONDS). Метод возвращает текущий объект HttpClient.Builder, что позволяет выстраивать цепочку вызовов.

Таймаут соединения не влияет на время ожидания ответа от сервера. Для ограничения времени выполнения всего запроса используйте метод timeout класса HttpRequest.Builder.

Синтаксис

builder.connectTimeout(duration, unit)

Пример

Давайте создадим клиент с таймаутом соединения равным 5 секундам и выведем информацию о нем:

import java.net.http.HttpClient; import java.time.Duration; public class Main { public static void main(String[] args) { HttpClient client = HttpClient.newBuilder() .connectTimeout(Duration.ofSeconds(5)) .build(); System.out.println(client.connectTimeout().get().getSeconds()); } }

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

5

Пример

Давайте установим таймаут соединения в 500 миллисекунд и попробуем выполнить запрос к недоступному адресу, чтобы увидеть исключение:

import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse; import java.net.URI; import java.time.Duration; public class Main { public static void main(String[] args) { try { HttpClient client = HttpClient.newBuilder() .connectTimeout(Duration.ofMillis(500)) .build(); HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("http://10.255.255.1")) .GET() .build(); HttpResponse<String> res = client.send(request, HttpResponse.BodyHandlers.ofString()); System.out.println(res.statusCode()); } catch (Exception e) { System.out.println(e.getClass().getSimpleName()); } } }

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

"HttpConnectTimeoutException"

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

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