Spec-Zone.ru › OpenJDK 17

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

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

Экземпляры HttpRequest.Builder создаются путем вызова HttpRequest.newBuilder(), HttpRequest.newBuilder(URI) или HttpRequest.newBuilder(HttpRequest, BiPredicate).

Построитель можно использовать для настройки состояния запроса, такого как: URI запроса, метод запроса (по умолчанию GET, если не указан явно), специфичные заголовки запроса и т.д. Каждый из методов-сеттеров изменяет состояние построителя и возвращает тот же экземпляр. Методы не синхронизированы и не должны вызываться из нескольких потоков без внешней синхронизации. Метод build возвращает новый HttpRequest каждый раз при вызове. После построения HttpRequest становится неизменяемым и может быть отправлен многократно.

Обратите внимание, что не все заголовки запроса могут быть установлены кодом пользователя. Некоторые заголовки ограничены по соображениям безопасности, а другие, такие как заголовки, связанные с аутентификацией, перенаправлением и управлением cookie, могут управляться специфическими API, а не устанавливаться напрямую пользователем.

С тех пор:
11

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

Модификатор и тип Метод Описание
HttpRequest build()
Строит и возвращает HttpRequest.
HttpRequest.Builder copy()
Возвращает точную копию этого Builder на основе текущего состояния.
HttpRequest.Builder DELETE()
Устанавливает метод запроса этого построителя в DELETE.
HttpRequest.Builder expectContinue(boolean enable)
Запрашивает сервер подтвердить запрос перед отправкой тела.
HttpRequest.Builder GET()
Устанавливает метод запроса этого построителя в GET.
HttpRequest.Builder header(String name, String value)
Добавляет заданную пару имя-значение в набор заголовков для этого запроса.
HttpRequest.Builder headers(String... headers)
Добавляет заданные пары имя-значение в набор заголовков для этого запроса.
HttpRequest.Builder method(String method, HttpRequest.BodyPublisher bodyPublisher)
Устанавливает метод запроса и тело запроса этого построителя в заданные значения.
HttpRequest.Builder POST(HttpRequest.BodyPublisher bodyPublisher)
Устанавливает метод запроса этого построителя в POST и устанавливает издателя тела запроса в заданное значение.
HttpRequest.Builder PUT(HttpRequest.BodyPublisher bodyPublisher)
Устанавливает метод запроса этого построителя в PUT и устанавливает издателя тела запроса в заданное значение.
HttpRequest.Builder setHeader(String name, String value)
Устанавливает заданную пару имя-значение в набор заголовков для этого запроса.
HttpRequest.Builder timeout(Duration duration)
Устанавливает таймаут для этого запроса.
HttpRequest.Builder uri(URI uri)
Устанавливает запрос этого HttpRequest'а URI.
HttpRequest.Builder version(HttpClient.Version version)
Устанавливает предпочтительную HttpClient.Version для этого запроса.

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

uri

HttpRequest.Builder uri(URI uri)
Устанавливает HttpRequest запроса этого URI.
Параметры:
uri - URI запроса
Возвращает:
этот билдер
Исключение:
IllegalArgumentException - если схема URI не поддерживается

expectContinue

HttpRequest.Builder expectContinue(boolean enable)
Запрашивает от сервера подтверждение запроса перед отправкой тела. По умолчанию отключено. Если включено, серверу запрашивается отправить ответ об ошибке или 100 Continue ответ до того, как клиент отправит тело запроса. Это означает, что издатель запроса для запроса не будет вызван до тех пор, пока не будет получен этот промежуточный ответ.
Параметры:
enable - true если отправлять Expect continue
Возвращает:
этот билдер

version

HttpRequest.Builder version(HttpClient.Version version)
Устанавливает предпочтительную версию HttpClient.Version для этого запроса.

Соответствующий HttpResponse должен быть проверен на версию, которая была фактически использована. Если версия не задана в запросе, то запрошенная версия будет той, что отправляет HttpClient.

Параметры:
version - Запрошенная версия протокола HTTP
Возвращает:
этот билдер

header

HttpRequest.Builder header(String name, String value)
Добавляет заданную пару имя-значение в набор заголовков для этого запроса. Заданное значение добавляется в список значений для этого имени.
Примечание реализации:
Реализация может выбрать ограничение некоторых имен или значений заголовков, так как HTTP-клиент может сам определить их значение. Например, "Content-Length", которое будет определено издателем запроса. В таком случае, реализация HttpRequest.Builder может выбрать бросить IllegalArgumentException если такой заголовок передан билдеру.
Параметры:
name - имя заголовка
value - значение заголовка
Возвращает:
этот билдер
Исключение:
IllegalArgumentException - если имя или значение заголовка неверны, см. RFC 7230 раздел-3.2, или имя или значение заголовка ограничены реализацией.

headers

HttpRequest.Builder headers(String... headers)
Добавляет заданные пары имя-значение в набор заголовков для этого запроса. Предоставленные String экземпляры должны чередоваться как имена заголовков и значения заголовков. Для добавления нескольких значений к одному имени, необходимо указать то же имя с каждым новым значением.
Параметры:
headers - список пар имя-значение
Возвращает:
этот билдер
Исключение:
IllegalArgumentException - если количество параметров нечетное, или если имя или значение заголовка неверны, см. RFC 7230 раздел-3.2, или имя или значение заголовка ограничено реализацией.

timeout

HttpRequest.Builder timeout(Duration duration)
Устанавливает таймаут для этого запроса. Если ответ не получен в течение указанного таймаута, то из HttpTimeoutException выбрасывается исключение из HttpClient::send или HttpClient::sendAsync завершается с исключением HttpTimeoutException. Отсутствие таймаута эквивалентно установке бесконечного Duration, то есть блокировка до бесконечности.
Параметры:
duration - длительность таймаута
Возвращает:
этот билдер
Исключение:
IllegalArgumentException - если продолжительность отрицательная или нулевая

setHeader

HttpRequest.Builder setHeader(String name, String value)
Устанавливает заданную пару имя-значение в набор заголовков для этого запроса. Заменяет все ранее установленные значения для имени.
Параметры:
name - имя заголовка
value - значение заголовка
Возвращает:
этот билдер
Исключение:
IllegalArgumentException - если имя или значение заголовка неверны, см. RFC 7230 раздел-3.2, или имя или значение заголовка ограничено реализацией.

GET

HttpRequest.Builder GET()
Устанавливает метод запроса этого билдера на GET. Это значение по умолчанию.
Возвращает:
этот билдер

POST

HttpRequest.Builder POST(HttpRequest.BodyPublisher bodyPublisher)
Устанавливает метод запроса этого билдера на POST и устанавливает издателя тела запроса на заданное значение.
Параметры:
bodyPublisher - издатель тела
Возвращает:
этот билдер

PUT

HttpRequest.Builder PUT(HttpRequest.BodyPublisher bodyPublisher)
Устанавливает метод запроса этого билдера на PUT и устанавливает издателя тела запроса на заданное значение.
Параметры:
bodyPublisher - издатель тела
Возвращает:
этот билдер

DELETE

HttpRequest.Builder DELETE()
Устанавливает метод запроса этого билдера на DELETE.
Возвращает:
этот билдер

method

HttpRequest.Builder method(String method, HttpRequest.BodyPublisher bodyPublisher)
Устанавливает метод запроса и издатель тела запроса этого билдера на заданные значения.
Примечание API:
Издатель тела запроса noBody может быть использован, когда тело запроса не требуется или не подходит. Является ли метод ограниченным, зависит от реализации. Например, некоторые реализации могут ограничить метод CONNECT.
Параметры:
method - метод, который нужно использовать
bodyPublisher - издатель тела
Возвращает:
этот билдер
Исключение:
IllegalArgumentException - если имя метода неверно, см. RFC 7230 раздел-3.1.1, или метод ограничен реализацией.

build

HttpRequest build()
Строит и возвращает HttpRequest.
Возвращает:
новый HttpRequest
Исключение:
IllegalStateException - если URI не был задан

copy

HttpRequest.Builder copy()
Возвращает точную копию этого Builder на основе текущего состояния. Новый билдер может быть изменён независимо от этого билдера.
Возвращает:
точная копия этого билдера

© 1993, 2021, 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/17/docs/api/java.net.http/java/net/http/HttpRequest.Builder.html

Spec-Zone.ru

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