Интерфейс HttpResponse.BodySubscriber<T>
- Type Parameters:
-
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должна гарантировать, что она запрашивает больше данных до тех пор, пока не будет сигнализировано оonCompleteилиonError, или запросит её подписку, если не сможет или не захочет этого сделать. Вызовcancelдо исчерпания данных тела ответа может привести к закрытию базового HTTP-соединения и помешать его повторному использованию для последующих операций. - Примечание реализации:
- Поток данных, содержащий тело ответа, неизменяем. Конкретно, это поток неизменяемых списков неизменяемых ByteBuffers.
- С:
- 11
- См. также:
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
CompletionStage<T> |
getBody() |
Возвращает CompletionStage, который при завершении вернёт объект тела ответа. |
Методы, объявленные в интерфейсе java.util.concurrent.Flow.Subscriber
onComplete, onError, onNext, onSubscribe
Подробное описание методов
getBody
CompletionStage<T> getBody()
CompletionStage, который при завершении вернёт объект тела ответа. Этот метод может быть вызван в любое время относительно других методов Flow.Subscriber и вызывается с помощью executor клиента.- Возвращает:
- CompletionStage для тела ответа
© 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/HttpResponse.BodySubscriber.html