Spec-Zone.ru › OpenJDK 27

Интерфейс 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. Если новое подключение устанавливать не требуется, например если можно повторно использовать подключение, созданное для предыдущего запроса, время ожидания не влияет на выполнение.

Требования к реализации:
Время ожидания подключения применяется ко всей фазе подключения — от момента запроса на подключение до его установления. Реализациям рекомендуется учитывать в этом времени ожидания 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 по умолчанию для запросов, отправляемых этим клиентом.

Если этот метод не вызван до создания, новые клиенты будут отдавать предпочтение HTTP/2.

Если для запроса не задана предпочтительная версия, используется предпочтительная версия клиента.

Примечание по реализации:
На выбор фактической версии протокола могут также влиять некоторые ограничения.
Параметры:
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-аутентификации.
Примечание по реализации:
Во встроенной реализации 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, но его не удается открыть из-за нехватки необходимых ресурсов, или если предпочтительная версия протокола не поддерживается реализацией или не может использоваться в этой конфигурации.

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, обзор концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2026, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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.

Spec-Zone.ru

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