Класс 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.
- Since:
- 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() |
Возвращает значение ожидания продолжения для этого запроса. |
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. |
Подробное описание конструкторов
HttpRequest
protected 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:
- Следующие сценарии демонстрируют типичные варианты использования фильтра. Дан запрос 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()
- Возвращает:
- метод этого запроса
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.
https://download.java.net/java/early_access/jdk24/docs/api/java.net.http/java/net/http/HttpRequest.html