Интерфейс HttpResponse.BodyHandler<T>
- Параметры типа:
T- тип тела ответа
- Включающий интерфейс:
HttpResponse<T>
- Функциональный интерфейс:
- Это функциональный интерфейс, поэтому его можно использовать в качестве целевого типа для лямбда-выражения или ссылки на метод.
@FunctionalInterface public static interface HttpResponse.BodyHandler<T>
BodyHandlers предоставляет реализации многих распространённых обработчиков тел. Интерфейс BodyHandler позволяет проверять код ответа и заголовки до получения фактического тела ответа и отвечает за создание BodySubscriber ответа. BodySubscriber принимает байты фактического тела ответа и, как правило, преобразует их в тип Java более высокого уровня.
BodyHandler — это функция, принимающая объект ResponseInfo и возвращающая BodySubscriber. BodyHandler вызывается, когда доступны код состояния ответа и заголовки, но байты тела ответа ещё не получены.
В следующем примере используется один из предопределённых обработчиков тела, которые всегда обрабатывают тело ответа одинаковым образом (передают тело ответа в поток в файл).
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("http://www.foo.com/"))
.build();
client.sendAsync(request, BodyHandlers.ofFile(Paths.get("/tmp/f")))
.thenApply(HttpResponse::body)
.thenAccept(System.out::println); HttpResponse после его возврата. Во втором примере функция возвращает разные подписчики в зависимости от кода состояния.
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("http://www.foo.com/"))
.build();
BodyHandler<Path> bodyHandler = (rspInfo) -> rspInfo.statusCode() == 200
? BodySubscribers.ofFile(Paths.get("/tmp/f"))
: BodySubscribers.replacing(Paths.get("/NULL"));
client.sendAsync(request, bodyHandler)
.thenApply(HttpResponse::body)
.thenAccept(System.out::println); - Начиная с:
- 11
- См. также:
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
HttpResponse.BodySubscriber |
apply |
Возвращает BodySubscriber с учётом заданных кода состояния ответа и заголовков. |
Подробное описание методов
apply
HttpResponse.BodySubscriber<T> apply(HttpResponse.ResponseInfo responseInfo)
BodySubscriber с учётом заданных кода состояния ответа и заголовков. Этот метод вызывается до чтения байтов фактического тела ответа, и его реализация должна вернуть BodySubscriber для обработки байтов тела ответа. Тело ответа можно отбросить с помощью одного из методов discarding или replacing.
- Параметры:
-
responseInfo- сведения об ответе - Возвращает:
- подписчик тела
© 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/HttpResponse.BodyHandler.html