Spec-Zone.ru › OpenJDK 27

Интерфейс 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
См. также:
  • HttpResponse.BodySubscribers

Краткое описание методов

Модификатор и тип Метод Описание
CompletionStage<T> getBody()
Возвращает CompletionStage, который после завершения вернёт объект тела ответа.

Методы, объявленные в интерфейсе Flow.Subscriber

onComplete, onError, onNext, onSubscribe
Модификатор и тип Метод Описание
void onComplete()
Метод вызывается, когда становится известно, что для Subscription не будет последующих вызовов методов Subscriber, если только Subscription уже не завершена с ошибкой; после этого Subscription больше не вызывает другие методы Subscriber.
void onError(Throwable throwable)
Метод вызывается при возникновении неисправимой ошибки у Publisher или Subscription; после этого Subscription больше не вызывает другие методы Subscriber.
void onNext(List<ByteBuffer> item)
Метод вызывается при поступлении следующего элемента Subscription.
void onSubscribe(Flow.Subscription subscription)
Метод вызывается до вызова любых других методов Subscriber для данной Subscription.

Подробное описание методов

getBody

CompletionStage<T> getBody()
Возвращает CompletionStage, который после завершения вернёт объект тела ответа. Этот метод можно вызывать в любой момент относительно других методов Flow.Subscriber; он выполняется с использованием исполнителя клиента.
Возвращает:
CompletionStage для тела ответа

Сообщить об ошибке или предложить улучшение
Дополнительные справочные сведения по API и документацию для разработчиков см. в разделе Документация Java SE, где представлены более подробные описания для разработчиков, включая общие сведения, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API