Spec-Zone.ru › OpenJDK 27

Класс 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()
Возвращает настройку ожидания продолжения этого запроса.
<T> Optional<T> getOption(HttpOption<T> option)
Возвращает значение, заданное для этого запроса для указанного параметра, если оно есть.
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.

Методы, объявленные в классе Object

clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создает и возвращает копию этого объекта.
protected void finalize()
Устарело, будет удалено: этот элемент API подлежит удалению в будущей версии.
Финализация устарела и подлежит удалению в одном из следующих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Приостанавливает текущий поток до его пробуждения, обычно в результате вызова notify или interrupt.
final void wait(long timeoutMillis)
Приостанавливает текущий поток до его пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного времени.
final void wait(long timeoutMillis, int nanos)
Приостанавливает текущий поток до его пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного времени.

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

HttpRequest

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

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

getOption

public <T> Optional<T> getOption(HttpOption<T> option)
Возвращает значение, заданное для этого запроса для указанного параметра, если оно есть.
Требования к реализации:
Реализация этого метода по умолчанию возвращает Optional.empty(), если option не равен null, в противном случае выбрасывает NullPointerException.
Параметры типа:
T — тип параметра
Параметры:
option — параметр конфигурации запроса
Возвращает:
значение, заданное для этого запроса для указанного параметра, если оно есть
Начиная с:
26
См. также:
  • HttpRequest.Builder.setOption(HttpOption, Object)

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 применяется к каждой паре «имя — значение» заголовка при ее копировании из заданного запроса. По завершении в Builder, возвращаемом этим методом, останутся только заголовки, удовлетворяющие условию, заданному filter.

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

  • Сохранить все заголовки:
    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 — если невозможно создать конструктор на основе заданного запроса (например, если запрос содержит недопустимые параметры)
Начиная с:
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()
Возвращает настройку ожидания продолжения этого запроса.
Возвращает:
настройку ожидания продолжения для этого запроса

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(Object)

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по 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