Интерфейс HttpRequest.Builder
- Вложенный класс:
- HttpRequest
public static interface HttpRequest.Builder
Построитель HTTP-запросов.
Экземпляры HttpRequest.Builder создаются путем вызова HttpRequest.newBuilder(URI) или HttpRequest.newBuilder().
Построитель можно использовать для конфигурирования состояния запроса, например: URI запроса, метод запроса (по умолчанию GET, если не задан явно), специфичные заголовки запроса и т.д. Каждый из методов-сеттеров изменяет состояние построителя и возвращает тот же экземпляр. Методы не синхронизированы и не должны вызываться из нескольких потоков без внешней синхронизации. Метод build возвращает новый HttpRequest каждый раз при вызове. После построения
HttpRequest становится неизменяемым и может быть отправлен несколько раз.
Обратите внимание, что не все заголовки запроса могут быть установлены кодом пользователя. Некоторые из них ограничены по соображениям безопасности, а другие, такие как заголовки, относящиеся к аутентификации, перенаправлению и управлению файлами cookie, могут управляться конкретными API, а не через непосредственно заданные пользователем заголовки.
- С момента:
- 11
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
HttpRequest | build() | Строит и возвращает |
HttpRequest.Builder | copy() | Возвращает точную копию этого |
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.Builder | version(HttpClient.Version 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- продолжительность таймаута - Возвращает:
- этот билдер
- Исключения:
-
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, 2020, 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/11/docs/api/java.net.http/java/net/http/HttpRequest.Builder.html