Spec-Zone.ru › OpenJDK 17

Класс 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 этого запроса

метод

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 этого запроса

версия

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, 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.html

Spec-Zone.ru

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