Интерфейс 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-клиента, которая публикует списки ByteBuffers, содержащие тело ответа. Поток данных, а также порядок ByteBuffers в списках потока, строго соответствует порядку данных в теле ответа. Списки и ByteBuffers после передачи подписчику больше не используются 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
Подробное описание методов
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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.net.http/java/net/http/HttpResponse.BodySubscriber.html