Spec-Zone.ru › OpenJDK 25

Класс 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.

Методы, объявленные в классе 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 применяется к каждой паре «имя — значение» заголовка при копировании из заданного запроса. После завершения в 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, 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/HttpRequest.html

Spec-Zone.ru

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