Spec-Zone.ru › OpenJDK 25

Интерфейс 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/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-аутентификации.
Примечание по реализации:
Во встроенной реализации 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, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.net.http/java/net/http/HttpClient.Builder.html

Spec-Zone.ru

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