Класс 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.
- Since:
- 11
Вложенные классы
| Модификатор и тип | Класс | Описание |
|---|---|---|
static interface |
HttpRequest.BodyPublisher |
|
static class |
HttpRequest.BodyPublishers |
Реализации |
static interface |
HttpRequest.Builder |
Строитель HTTP-запросов. |
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
HttpRequest() |
Создаёт HttpRequest. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
abstract Optional<HttpRequest.BodyPublisher> |
bodyPublisher() |
Возвращает |
boolean |
equals(Object obj) |
Проверяет этот экземпляр HTTP-запроса на равенство с заданным объектом. |
abstract boolean |
expectContinue() |
Возвращает значение ожидания продолжения для этого запроса. |
int |
hashCode() |
Вычисляет хэш-код для этого экземпляра HTTP-запроса. |
abstract HttpHeaders |
headers() |
(Доступные пользователю) заголовки запроса, с которыми этот запрос отправляется (или будет отправлен). |
abstract String |
method() |
Возвращает метод запроса для этого запроса. |
static HttpRequest.Builder |
newBuilder() |
Создаёт |
static HttpRequest.Builder |
newBuilder(URI uri) |
Создаёт |
abstract Optional<Duration> |
timeout() |
Возвращает |
abstract URI |
uri() |
Возвращает |
abstract Optional<HttpClient.Version> |
version() |
Возвращает |
Методы, объявленные в классе 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