Класс 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<HttpRequest.BodyPublisher> |
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<Duration> |
timeout() |
Возвращает Optional, содержащий время ожидания этого запроса. |
abstract URI |
uri() |
Возвращает URI этого запроса. |
abstract Optional<HttpClient.Version> |
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:
- Следующие сценарии демонстрируют типичные случаи использования фильтра. Учитывая
HttpRequestзапрос:
- Сохранение всех заголовков:
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- если новый билдер не может быть создан на основе заданного запроса (например, если запрос содержит недопустимые параметры) - C:
- 16
newBuilder
public static HttpRequest.Builder newBuilder()
HttpRequest билдер.- Возвращает:
- новый билдер запроса
bodyPublisher
public abstract Optional<HttpRequest.BodyPublisher> bodyPublisher()
Optional , содержащий HttpRequest.BodyPublisher , заданный в этом запросе. Если BodyPublisher не был задан в билдере запроса, то Optional пуста.- Возвращает:
Optional, содержащийBodyPublisherэтого запроса
метод
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 этого запроса
версия
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.
- Переопределяет:
-
equalsв классеObject - Параметры:
-
obj- объект, с которым сравнивается этот объект - Возвращает:
-
trueесли и только если заданный объект являетсяHttpRequest, равным этому HTTP-запросу - См. также:
hashCode
public final int hashCode()
Хэш-код основан на URI, методе и компонентах заголовков HTTP-запроса и удовлетворяет общему контракту метода Object.hashCode.
- Переопределяет:
-
hashCodeв классеObject - Возвращает:
- значение хэш-кода для этого HTTP-запроса
- См. также:
© 1993, 2021, 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/17/docs/api/java.net.http/java/net/http/HttpRequest.html