Интерфейс HttpClient.Builder
- Вложенный класс:
HttpClient
public static interface HttpClient.Builder
Построители создаются путём вызова newBuilder. Каждый из методов-сеттеров изменяет состояние построителя и возвращает тот же экземпляр. Построители не потокобезопасны и не должны использоваться одновременно из нескольких потоков без внешней синхронизации.
- С тех пор:
- 11
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final ProxySelector |
NO_PROXY |
Селектор прокси, который всегда возвращает Proxy.NO_PROXY, что подразумевает прямое соединение. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
HttpClient.Builder |
authenticator |
Устанавливает аутентификатор для использования в HTTP-аутентификации. |
HttpClient |
build() |
Возвращает новый HttpClient, построенный на основе текущего состояния этого построителя. |
HttpClient.Builder |
connectTimeout |
Устанавливает время ожидания соединения для этого клиента. |
HttpClient.Builder |
cookieHandler |
Устанавливает обработчик куки. |
HttpClient.Builder |
executor |
Устанавливает исполнителя для использования в асинхронных и зависимых задачах. |
HttpClient.Builder |
followRedirects |
Указывает, будут ли запросы автоматически следовать перенаправлениям, выданным сервером. |
default HttpClient.Builder |
localAddress |
Связывает сокет с этим локальным адресом при создании подключений для отправки запросов. |
HttpClient.Builder |
priority |
Устанавливает приоритет по умолчанию для любых запросов HTTP/2, отправляемых с этого клиента. |
HttpClient.Builder |
proxy |
Устанавливает ProxySelector. |
HttpClient.Builder |
sslContext |
Устанавливает SSLContext. |
HttpClient.Builder |
sslParameters |
Устанавливает SSLParameters. |
HttpClient.Builder |
version |
Запрашивает определённую версию протокола HTTP, где это возможно. |
Подробное описание полей
NO_PROXY
static final ProxySelector NO_PROXY
Proxy.NO_PROXY, подразумевая прямое подключение. Это удобный объект, который можно передать proxy(ProxySelector), чтобы создать экземпляр HttpClient, который не использует прокси.
Подробное описание методов
cookieHandler
HttpClient.Builder cookieHandler(CookieHandler cookieHandler)
- Параметры:
-
cookieHandler- обработчик файлов cookie - Возвращает:
- этот билдер
connectTimeout
HttpClient.Builder connectTimeout(Duration duration)
В случае, когда необходимо установить новое подключение, если подключение не может быть установлено в течение заданного
duration, то HttpClient::send выбрасывает HttpConnectTimeoutException, или HttpClient::sendAsync завершается исключением с HttpConnectTimeoutException. Если устанавливать новое подключение не нужно, например, если подключение можно повторно использовать из предыдущего запроса, то это время ожидания не имеет эффекта.
- Параметры:
-
duration- время, в течение которого разрешается установить подлежащее подключение - Возвращает:
- этот билдер
- Исключения:
-
IllegalArgumentException- если время не положительное
sslContext
HttpClient.Builder sslContext(SSLContext sslContext)
SSLContext. Если этот метод не вызывается до создания, то недавно созданные клиенты будут использовать стандартный контекст, что обычно достаточно для клиентских приложений, которым не нужно указывать протоколы или требуется проверка клиента.
- Параметры:
-
sslContext- SSLContext - Возвращает:
- этот билдер
sslParameters
HttpClient.Builder sslParameters(SSLParameters sslParameters)
SSLParameters. Если этот метод не вызывается до создания, то недавно созданные клиенты будут использовать стандартный набор параметров, специфичный для реализации.
Некоторые параметры, используемые внутри реализации HTTP-клиента (например, список протоколов приложения), не должны устанавливаться вызывающими сторонами, так как они могут быть проигнорированы. Содержимое переданного объекта копируется.
- Параметры:
-
sslParameters- SSLParameters - Возвращает:
- этот билдер
executor
HttpClient.Builder executor(Executor executor)
Если этот метод не вызывается до создания, для каждого нового созданного
HttpClient создается исполняющий контекст.
- Примечание реализации:
- Стандартный исполняющий контекст использует пул потоков с пользовательским создателем потоков.
- Параметры:
-
executor- Executor - Возвращает:
- этот билдер
followRedirects
HttpClient.Builder followRedirects(HttpClient.Redirect policy)
Если этот метод не вызывается до создания, то недавно созданные клиенты будут использовать политику перенаправления по умолчанию NEVER.
- Параметры:
-
policy- политика перенаправления - Возвращает:
- этот билдер
version
HttpClient.Builder version(HttpClient.Version version)
Если этот метод не вызывается до создания, то недавно созданные клиенты будут предпочитать HTTP/2.
Если установлено значение HTTP/2, каждый запрос будет пытаться перейти на HTTP/2. Если переход удастся, то ответ на этот запрос будет использовать HTTP/2, а все последующие запросы и ответы на тот же сервер источника будут использовать HTTP/2. Если переход не удастся, то ответ будет обработан с использованием HTTP/1.1
- Примечание реализации:
- Ограничения также могут повлиять на выбор версии протокола. Например, если HTTP/2 запрашивается через прокси, и если реализация не поддерживает этот режим, то может использоваться HTTP/1.1
- Параметры:
-
version- запрашиваемая версия HTTP-протокола - Возвращает:
- этот билдер
priority
HttpClient.Builder priority(int priority)
1 до 256 (включительно).- Параметры:
-
priority- приоритет - Возвращает:
- этот билдер
- Исключения:
-
IllegalArgumentException- если указанный приоритет находится вне диапазона
proxy
HttpClient.Builder proxy(ProxySelector proxySelector)
ProxySelector.- Примечание API:
-
ProxySelector::ofпредоставляетProxySelector, который использует один прокси для всех запросов. Системный селектор прокси можно получить с помощьюProxySelector.getDefault(). - Примечание реализации:
- Если этот метод не вызывается до создания, то недавно созданные клиенты будут использовать стандартный селектор прокси, что обычно достаточно для клиентских приложений. Стандартный селектор прокси поддерживает набор системных свойств, связанных с настройками прокси. Это поведение по умолчанию можно отключить, указав явный селектор прокси, такой как
NO_PROXYили полученный с помощьюProxySelector::of, перед созданием. - Параметры:
-
proxySelector- ProxySelector - Возвращает:
- этот билдер
authenticator
HttpClient.Builder authenticator(Authenticator authenticator)
- Примечание реализации:
- В встроенной реализации
HttpClientJDK, если уHttpRequestесть заголовокAuthorizationилиProxy-Authorization, то его значение используется, иAuthenticatorне вызывается для соответствующей аутентификации. В этом случае любые ошибки аутентификации возвращаются пользователю, и запросы не пересылаются автоматически. - Параметры:
-
authenticator- Authenticator - Возвращает:
- этот билдер
localAddress
default HttpClient.Builder localAddress(InetAddress localAddr)
Если локальный адрес не задан или null передаётся в этот метод, то сокеты, созданные HTTP-клиентом, будут привязаны к автоматически назначенному адресу сокета.
Типичные случаи использования HttpClient не требуют вызова этого метода. Установка локального адреса с помощью этого метода предназначена только для расширенных случаев, когда пользователи HttpClient нуждаются в конкретном управлении тем, какой сетевой интерфейс используется для HTTP-общения. Вызывающие стороны этого метода должны понимать сетевые настройки системы, в которой будет использоваться HttpClient, и позаботиться о передаче правильного localAddr. Несоблюдение этого может привести к тому, что запросы, отправленные через HttpClient, не будут выполнены.
- Требования к реализации:
- Стандартная реализация этого метода выбрасывает
UnsupportedOperationException.Builder, полученные черезHttpClient.newBuilder(), обеспечивают реализацию этого метода, которая позволяет задать локальный адрес. - Параметры:
-
localAddr- Локальный адрес сокета. Может быть null. - Возвращает:
- этот билдер
- Исключения:
-
UnsupportedOperationException- если этот билдер не поддерживает настройку локального адреса или если переданныйlocalAddrне поддерживается реализацией этогоHttpClient. - С:
- 19
build
HttpClient build()
HttpClient, созданный на основе текущего состояния этого билдера.- Возвращает:
- новый
HttpClient - Издаёт исключение:
-
UncheckedIOException— может быть выброшено, если реализации не удаётся выделить необходимые ресурсы ввода-вывода. Например, если реализации требуетсяSelector, а её открытие завершается неудачей из-за недостатка необходимых ресурсов.
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://download.java.net/java/early_access/jdk24/docs/api/java.net.http/java/net/http/HttpClient.Builder.html