Интерфейс 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 |
Задает обработчик файлов cookie. |
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. Если новое подключение устанавливать не требуется, например если можно повторно использовать подключение, созданное для предыдущего запроса, время ожидания не влияет на выполнение.
- Требования к реализации:
- Время ожидания подключения применяется ко всей фазе подключения — от момента запроса на подключение до его установления. Реализациям рекомендуется учитывать в этом времени ожидания TLS-рукопожатия.
- Примечание по реализации:
- Встроенная реализация JDK учитывает в ожидании подключения любые TLS-рукопожатия.
- Параметры:
-
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.
Если для запроса не задана предпочтительная версия, используется предпочтительная версия клиента.
- Примечание по реализации:
- На выбор фактической версии протокола могут также влиять некоторые ограничения.
- Параметры:
-
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)
- Примечание по реализации:
- Во встроенной реализации
HttpClientв JDK, если дляHttpRequestзадан заголовокAuthorizationилиProxy-Authorization, его значение используется, аAuthenticatorне вызывается для соответствующей аутентификации. В этом случае ошибки аутентификации возвращаются пользователю, а запросы не повторяются автоматически. Кроме того, встроенная реализация JDK в настоящее время поддерживает только HTTP-аутентификациюBasic. - Параметры:
-
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.