Класс 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() |
Возвращает настройку ожидания продолжения этого запроса. |
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 применяется к каждой паре «имя — значение» заголовка при копировании из заданного запроса. После завершения в 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.net.http/java/net/http/HttpRequest.html