Spec-Zone.ru › OpenJDK 21

Класс HttpRequest

java.lang.Object
java.net.http.HttpRequest
public abstract class HttpRequest extends Object
HTTP-запрос.

Экземпляр HttpRequest создаётся через HttpRequest строитель. Строитель HttpRequest получается с помощью одного из методов newBuilder. Можно установить URI запроса, его заголовки и тело. Тела запросов предоставляются через BodyPublisher, передаваемый в один из методов POST, PUT или method. После того, как все необходимые параметры установлены в строителе, метод build вернёт HttpRequest. Строители можно копировать и изменять многократно для построения нескольких взаимосвязанных запросов, которые отличаются некоторыми параметрами.

Вот пример GET-запроса, который выводит тело ответа в виде строки:

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
      .uri(URI.create("http://foo.com/"))
      .build();

client.sendAsync(request, BodyHandlers.ofString())
      .thenApply(HttpResponse::body)
      .thenAccept(System.out::println)
      .join();

Класс BodyPublishers предоставляет реализации многих стандартных издателей. В качестве альтернативы можно использовать собственную реализацию BodyPublisher.

С:
11

Краткое описание вложенных классов

Модификатор и тип Класс Описание
static interface  HttpRequest.BodyPublisher
BodyPublisher преобразует высокоуровневые Java-объекты в поток байтовых буферов, подходящих для отправки в качестве тела запроса.
static class  HttpRequest.BodyPublishers
Реализации BodyPublisher, которые реализуют различные полезные издатели, такие как отправка тела запроса из строки или из файла.
static interface  HttpRequest.Builder
Строитель HTTP-запросов.

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

HttpRequest()
Модификатор Конструктор Описание
protected
Создаёт HttpRequest.

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

Модификатор и тип Метод Описание
abstract Optional<HttpRequest.BodyPublisher> bodyPublisher()
Возвращает Optional, содержащий HttpRequest.BodyPublisher, установленный в этом запросе.
final boolean equals(Object obj)
Проверяет этот экземпляр HTTP-запроса на равенство заданному объекту.
abstract boolean expectContinue()
Возвращает значение ожидания продолжения для этого запроса.
final int hashCode()
Вычисляет код хеша для этого экземпляра HTTP-запроса.
abstract HttpHeaders headers()
Заголовки запроса (доступные пользователю), которые будут отправлены (или отправлялись) с этим запросом.
abstract String method()
Возвращает метод запроса для этого запроса.
static HttpRequest.Builder newBuilder()
Создаёт строитель HttpRequest.
static HttpRequest.Builder newBuilder(HttpRequest request, BiPredicate<String,String> filter)
Создаёт строитель Builder, состояние которого скопировано из существующего HttpRequest.
static HttpRequest.Builder newBuilder(URI uri)
Создаёт строитель HttpRequest с указанным URI.
abstract Optional<Duration> timeout()
Возвращает Optional, содержащий время ожидания для этого запроса.
abstract URI uri()
Возвращает URI этого запроса.
abstract Optional<HttpClient.Version> version()
Возвращает Optional, содержащий версию HTTP-протокола, которая будет запрошена для этого HttpRequest.

Методы, унаследованные от класса java.lang.Object

clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait

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

HttpRequest

protected HttpRequest()
Создаёт HttpRequest.

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

newBuilder

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

newBuilder

public static HttpRequest.Builder newBuilder(HttpRequest request, BiPredicate<String,String> filter)
Создаёт Builder , состояние которого скопировано из существующего HttpRequest.

Этот билдер может быть использован для создания HttpRequest, эквивалентного исходному, при этом позволяя изменить состояние запроса перед построением — например, добавить дополнительные заголовки.

filter применяется к каждой паре имя-значение заголовка при их копировании из заданного запроса. По завершении, только те заголовки, которые удовлетворяют условию, заданному filter, будут присутствовать в Builder , возвращаемом этим методом.

Примечание API:
Следующие сценарии демонстрируют типичные случаи использования фильтра. Дано HttpRequest запрос:

  • Сохранить все заголовки:
    HttpRequest.newBuilder(request, (n, v) -> true)
  • Удалить все заголовки:
    HttpRequest.newBuilder(request, (n, v) -> false)
  • Удалить определённый заголовок (например, Foo-Bar):
    HttpRequest.newBuilder(request, (name, value) -> !name.equalsIgnoreCase("Foo-Bar"))
Параметры:
request - исходный запрос
filter - фильтр заголовков
Возвращает:
новый билдер запроса
Исключения:
IllegalArgumentException - если новый билдер не может быть создан из данного запроса (например, если запрос содержит некорректные параметры)
C момента:
16

newBuilder

public static HttpRequest.Builder newBuilder()
Создаёт HttpRequest билдер.
Возвращает:
новый билдер запроса

bodyPublisher

public abstract Optional<HttpRequest.BodyPublisher> bodyPublisher()
Возвращает Optional содержащий HttpRequest.BodyPublisher, установленный в этом запросе. Если BodyPublisher не был установлен в билдере запроса, то Optional пусто.
Возвращает:
Optional содержащий BodyPublisher этого запроса

method

public abstract String method()
Возвращает метод запроса для этого запроса. Если явно не задан, по умолчанию метод для любого запроса - "GET".
Возвращает:
метод этого запроса

timeout

public abstract Optional<Duration> timeout()
Возвращает Optional , содержащий время ожидания этого запроса. Если время ожидания не было установлено в билдере запроса, то Optional пусто.
Возвращает:
Optional содержащий время ожидания этого запроса

expectContinue

public abstract boolean expectContinue()
Возвращает установку ожидания продолжения (expect continue) этого запроса.
Возвращает:
установку ожидания продолжения этого запроса

uri

public abstract URI uri()
Возвращает URI этого запроса.
Возвращает:
URI этого запроса

version

public abstract Optional<HttpClient.Version> version()
Возвращает Optional содержащий версию HTTP-протокола, которая будет запрошена для этого HttpRequest. Если версия не была задана в билдере запроса, то Optional пуста. В этом случае запрашиваемая версия будет версией отправляемого HttpClient. Соответствующий HttpResponse должен быть запрошен для определения фактически использованной версии.
Возвращает:
версия HTTP-протокола

headers

public abstract HttpHeaders headers()
Заголовки запроса (доступные пользователю), которые были (или будут) отправлены с этим запросом.
Возвращает:
HttpHeaders этого запроса

equals

public final boolean equals(Object obj)
Проверяет равенство экземпляра HTTP-запроса с данным объектом.

Если данный объект не является HttpRequest, то этот метод возвращает false. Два HTTP-запроса равны, если их URI, метод и поля заголовков равны.

Этот метод удовлетворяет общему контракту метода Object.equals.

Переопределяет:
equals в классе Object
Параметры:
obj - объект, с которым будет сравниваться этот объект
Возвращает:
true тогда и только тогда, когда данный объект является HttpRequest, равным этому HTTP-запросу
См. также:
  • Object.hashCode()
  • HashMap

hashCode

public final int hashCode()
Вычисляет хеш-код для этого экземпляра HTTP-запроса.

Хеш-код основан на URI, методе и компонентах заголовков HTTP-запроса и удовлетворяет общему контракту метода Object.hashCode.

Переопределяет:
hashCode в классе Object
Возвращает:
значение хеш-кода для этого HTTP-запроса
См. также:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(java.lang.Object)

© 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/HttpRequest.html

Spec-Zone.ru

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