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

Since:
11

Вложенные классы

Модификатор и тип Класс Описание
static interface  HttpRequest.BodyPublisher

BodyPublisher преобразует объекты Java высокого уровня в поток буферов байтов, подходящих для отправки в качестве тела запроса.

static class  HttpRequest.BodyPublishers

Реализации BodyPublisher, которые реализуют различные полезные издатели, такие как публикация тела запроса из строки или файла.

static interface  HttpRequest.Builder

Строитель HTTP-запросов.

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

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

Создаёт HttpRequest.

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

Модификатор и тип Метод Описание
abstract Optional<HttpRequest.BodyPublisher> bodyPublisher()

Возвращает Optional, содержащий HttpRequest.BodyPublisher, заданный для этого запроса.

boolean equals​(Object obj)

Проверяет этот экземпляр HTTP-запроса на равенство с заданным объектом.

abstract boolean expectContinue()

Возвращает значение ожидания продолжения для этого запроса.

int hashCode()

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

abstract HttpHeaders headers()

(Доступные пользователю) заголовки запроса, с которыми этот запрос отправляется (или будет отправлен).

abstract String method()

Возвращает метод запроса для этого запроса.

static HttpRequest.Builder newBuilder()

Создаёт 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.

Parameters:
uri - URI запроса
Returns:
новый строитель запроса
Throws:
IllegalArgumentException - если схема URI не поддерживается.

newBuilder

public static HttpRequest.Builder newBuilder()

Создаёт HttpRequest строитель.

Returns:
новый строитель запроса

bodyPublisher

public abstract Optional<HttpRequest.BodyPublisher> bodyPublisher()

Возвращает Optional, содержащий HttpRequest.BodyPublisher, заданный для этого запроса. Если BodyPublisher не был задан в стротителе запроса, то Optional пусто.

Returns:
Optional, содержащий BodyPublisher этого запроса

method

public abstract String method()

Возвращает метод запроса для этого запроса. Если не указан явно, по умолчанию для любого запроса метод - "GET".

Returns:
метод этого запроса

timeout

public abstract Optional<Duration> timeout()

Возвращает Optional, содержащий время ожидания для этого запроса. Если время ожидания не было задано в стротителе запроса, то Optional пусто.

Returns:
Optional, содержащий время ожидания этого запроса

expectContinue

public abstract boolean expectContinue()

Возвращает значение ожидания продолжения для этого запроса.

Returns:
значение ожидания продолжения для этого запроса

uri

public abstract URI uri()

Возвращает URI этого запроса.

Returns:
URI этого запроса

version

public abstract Optional<HttpClient.Version> version()

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

Returns:
версия HTTP-протокола

headers

public abstract HttpHeaders headers()

(Доступные пользователю) заголовки запроса, с которыми этот запрос отправляется (или будет отправлен).

Returns:
HttpHeaders этого запроса

equals

public final boolean equals(Object obj)

Проверяет этот экземпляр HTTP-запроса на равенство с заданным объектом.

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

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

Overrides:
equals в классе Object
Parameters:
obj - объект, с которым сравнивается этот объект
Returns:
true тогда и только тогда, когда заданный объект является HttpRequest, равным этому HTTP-запросу
See Also:
Object.hashCode(), HashMap

hashCode

public final int hashCode()

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

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

Overrides:
hashCode в классе Object
Returns:
значение хэш-кода для этого HTTP-запроса
See Also:
Object.equals(java.lang.Object), System.identityHashCode(java.lang.Object)

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

Spec-Zone .ru
спецификации, руководства, описания, API