Интерфейс 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. Если новое подключение не требуется, например, если подключение может быть повторно использовано из предыдущего запроса, то это время ожидания не имеет эффекта.
- Параметры:
-
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)
- Параметры:
-
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, созданный из текущего состояния этого билдера.- Требования к реализации:
- Если
local addressявляется непустым адресом и установлена система безопасности, то этот метод вызываетcheckListenдля проверки, имеет ли вызывающая сторона необходимое разрешение на привязку к этому локальному адресу. - Возвращает:
- новый
HttpClient - Исключения:
-
UncheckedIOException- может быть выброшено, если необходимые для реализации подсистемы ввода-вывода ресурсы не могут быть выделены. Например, если реализации требуетсяSelector, и её открытие завершается неудачей из-за недостатка необходимых ресурсов. -
SecurityException- если установлена система безопасности, и методcheckListenсистемы безопасности запрещает привязку к данному адресу.
© 1993, 2023, 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://docs.oracle.com/en/java/javase/21/docs/api/java.net.http/java/net/http/HttpClient.Builder.html