Интерфейс HttpResponse.BodySubscriber<T>
- Параметры типа:
T— тип тела ответа
- Все суперинтерфейсы:
Flow.Subscriber<List<ByteBuffer>>
- Включающий интерфейс:
HttpResponse<T>
public static interface HttpResponse.BodySubscriber<T> extends Flow.Subscriber<List<ByteBuffer>>
BodySubscriber получает байты тела ответа и преобразует их в тип Java более высокого уровня. Класс BodySubscribers содержит реализации многих распространённых подписчиков тела ответа. Этот объект выступает в роли Flow.Subscriber<List<ByteBuffer>> для реализации HTTP-клиента, которая публикует списки ByteBuffer, содержащие тело ответа. Поток данных, как и порядок ByteBuffer в списках потока, представляет тело ответа в строго упорядоченном виде. Списки и ByteBuffer после передачи подписчику больше не используются HTTP-клиентом. Подписчик преобразует поступающие буферы данных в тип Java более высокого уровня T.
Метод getBody() возвращает CompletionStage<T>, предоставляющий объект тела ответа. CompletionStage должен быть доступен в любой момент. Время его завершения зависит от природы типа T. Во многих случаях, когда T представляет всё тело после его получения, CompletionStage завершается после получения тела. Если T — потоковый тип, например InputStream, он завершается до того, как тело будет прочитано, поскольку вызывающий код использует InputStream для получения данных.
- Примечание к API:
- Чтобы гарантировать корректное освобождение всех ресурсов, связанных с соответствующим обменом данными HTTP, реализация
BodySubscriberдолжна запрашивать дополнительные данные с помощью request, пока не будет получен сигналonCompleteилиonError, либо отменять своюcancelподписку, если не может или не хочет этого делать. Вызовcancelдо исчерпания данных тела ответа может привести к закрытию базового HTTP-соединения и помешать его повторному использованию для последующих операций. - Примечание по реализации:
- Поток данных, содержащий тело ответа, неизменяем. В частности, это поток неизменяемых списков буферов ByteBuffer, доступных только для чтения.
- Начиная с:
- 11
- См. также:
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
CompletionStage |
getBody() |
Возвращает CompletionStage, который после завершения вернёт объект тела ответа. |
Методы, объявленные в интерфейсе Flow.Subscriber
onComplete, onError, onNext, onSubscribe | Модификатор и тип | Метод | Описание |
|---|---|---|
void |
onComplete() |
Метод вызывается, когда становится известно, что для Subscription не будет последующих вызовов методов Subscriber, если только Subscription уже не завершена с ошибкой; после этого Subscription больше не вызывает другие методы Subscriber. |
void |
onError |
Метод вызывается при возникновении неисправимой ошибки у Publisher или Subscription; после этого Subscription больше не вызывает другие методы Subscriber. |
void |
onNext |
Метод вызывается при поступлении следующего элемента Subscription. |
void |
onSubscribe |
Метод вызывается до вызова любых других методов Subscriber для данной Subscription. |
Подробное описание методов
getBody
CompletionStage<T> getBody()
CompletionStage, который после завершения вернёт объект тела ответа. Этот метод можно вызывать в любой момент относительно других методов Flow.Subscriber; он выполняется с использованием исполнителя клиента.- Возвращает:
- CompletionStage для тела ответа
© 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.