Spec-Zone.ru › OpenJDK 21

Интерфейс HttpClient.Builder

Вложенный класс:
HttpClient
public static interface HttpClient.Builder
Построитель клиентов HTTP.

Построители создаются вызовом newBuilder. Каждый из методов-сеттеров изменяет состояние построителя и возвращает тот же экземпляр. Построители не потокобезопасны и не должны использоваться одновременно из нескольких потоков без внешней синхронизации.

С тех пор:
11

Краткое описание полей

Модификатор и тип Поле Описание
static final ProxySelector NO_PROXY
Селектор прокси, который всегда возвращает Proxy.NO_PROXY, подразумевая прямое соединение.

Краткое описание методов

Модификатор и тип Метод Описание
HttpClient.Builder authenticator(Authenticator authenticator)
Устанавливает аутентификатор для использования при HTTP-аутентификации.
HttpClient build()
Возвращает новый HttpClient, созданный на основе текущего состояния этого построителя.
HttpClient.Builder connectTimeout(Duration duration)
Устанавливает время ожидания подключения для этого клиента.
HttpClient.Builder cookieHandler(CookieHandler cookieHandler)
Устанавливает обработчик файлов cookie.
HttpClient.Builder executor(Executor executor)
Устанавливает исполнителя, который будет использоваться для асинхронных и зависимых задач.
HttpClient.Builder followRedirects(HttpClient.Redirect policy)
Указывает, будут ли запросы автоматически следовать переадресациям, выданным сервером.
default HttpClient.Builder localAddress(InetAddress localAddr)
Привязывает сокет к этому локальному адресу при создании соединений для отправки запросов.
HttpClient.Builder priority(int priority)
Устанавливает приоритет по умолчанию для любых запросов HTTP/2, отправленных с помощью этого клиента.
HttpClient.Builder proxy(ProxySelector proxySelector)
Устанавливает ProxySelector.
HttpClient.Builder sslContext(SSLContext sslContext)
Устанавливает SSLContext.
HttpClient.Builder sslParameters(SSLParameters sslParameters)
Устанавливает SSLParameters.
HttpClient.Builder version(HttpClient.Version version)
Запрашивает определенную версию протокола HTTP, где это возможно.

Подробное описание полей

NO_PROXY

static final ProxySelector NO_PROXY
Выборщик прокси, который всегда возвращает Proxy.NO_PROXY, подразумевая прямое соединение.

Это удобный объект, который можно передать proxy(ProxySelector) для создания экземпляра HttpClient, который не использует прокси.

Подробное описание методов

cookieHandler

HttpClient.Builder cookieHandler(CookieHandler cookieHandler)
Устанавливает обработчик cookie.
Параметры:
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, где это возможно.

Если этот метод не вызывается до создания, то вновь созданные клиенты будут использовать протокол 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)
Устанавливает приоритет по умолчанию для всех запросов HTTP/2, отправленных от этого клиента. Указанное значение должно быть между 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)
Устанавливает аутентификатор для использования при аутентификации HTTP.
Параметры:
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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API