Интерфейс 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://download.java.net/java/early_access/jdk24/docs/api/java.net.http/java/net/http/HttpResponse.BodyHandler.html