Класс HttpRequest
public abstract class HttpRequest extends Object
Экземпляр 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-запросов. |
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Создает HttpRequest. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
abstract Optional |
bodyPublisher() |
Возвращает Optional, содержащий заданный для этого запроса HttpRequest.BodyPublisher. |
final boolean |
equals |
Проверяет, равен ли этот экземпляр HTTP-запроса заданному объекту. |
abstract boolean |
expectContinue() |
Возвращает настройку ожидания продолжения этого запроса. |
<T> Optional |
getOption |
Возвращает значение, заданное для этого запроса для указанного параметра, если оно есть. |
final int |
hashCode() |
Вычисляет хеш-код этого экземпляра HTTP-запроса. |
abstract HttpHeaders |
headers() |
Заголовки запроса, доступные пользователю, с которыми был (или будет) отправлен этот запрос. |
abstract String |
method() |
Возвращает метод этого запроса. |
static HttpRequest.Builder |
newBuilder() |
Создает конструктор HttpRequest. |
static HttpRequest.Builder |
newBuilder |
Создает Builder, начальное состояние которого копируется из существующего HttpRequest. |
static HttpRequest.Builder |
newBuilder |
Создает конструктор HttpRequest с заданным URI. |
abstract Optional |
timeout() |
Возвращает Optional, содержащий время ожидания этого запроса. |
abstract URI |
uri() |
Возвращает URI этого запроса. |
abstract Optional |
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 |
Приостанавливает текущий поток до его пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного времени. |
final void |
wait |
Приостанавливает текущий поток до его пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного времени. |
Подробное описание конструкторов
HttpRequest
protected HttpRequest()
Подробное описание методов
getOption
public <T> Optional<T> getOption(HttpOption<T> option)
- Требования к реализации:
- Реализация этого метода по умолчанию возвращает
Optional.empty(), еслиoptionне равен null, в противном случае выбрасываетNullPointerException. - Параметры типа:
T— тип параметра- Параметры:
-
option— параметр конфигурации запроса - Возвращает:
- значение, заданное для этого запроса для указанного параметра, если оно есть
- Начиная с:
- 26
- См. также:
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:
- В следующих сценариях показаны типичные варианты использования фильтра. Пусть задан
HttpRequestrequest:
- Сохранить все заголовки:
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()
- Возвращает:
- метод этого запроса
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)
Если заданный объект не является HttpRequest, этот метод возвращает false. Два HTTP-запроса равны, если их URI, метод и поля заголовков равны.
Этот метод соответствует общему контракту метода Object.equals.
hashCode
public final int hashCode()
Хеш-код основан на URI, методе и компонентах заголовков HTTP-запроса и соответствует общему контракту метода Object.hashCode.
© 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.