Spec-Zone.ru › OpenJDK 27

Интерфейс HttpRequest.BodyPublisher

Все суперинтерфейсы:
Flow.Publisher<ByteBuffer>
Вмещающий класс:
HttpRequest
public static interface HttpRequest.BodyPublisher extends Flow.Publisher<ByteBuffer>
BodyPublisher преобразует высокоуровневые объекты Java в поток буферов байтов, подходящих для отправки в теле запроса. Класс BodyPublishers предоставляет реализации многих распространённых издателей.

Интерфейс BodyPublisher расширяет Flow.Publisher<ByteBuffer>, то есть BodyPublisher выступает в роли издателя буферов байтов.

При отправке запроса с телом HTTP-клиент подписывается на BodyPublisher запроса, чтобы получать поток данных исходящего тела запроса. Обычная семантика Flow.Subscriber и Flow.Publisher реализуется HTTP-клиентом и ожидается от реализаций BodyPublisher. Для каждого исходящего запроса HTTP-клиент создаёт одну подписку Subscriber на BodyPublisher, чтобы получить последовательность буферов байтов, содержащих тело запроса. Экземпляры ByteBuffer, публикуемые издателем, должны выделяться издателем и не должны использоваться после публикации для HTTP-клиента. Эти подписки завершаются обычным образом после полной отправки тела запроса; они также могут быть отменены или преждевременно завершены из-за ошибки. Если по какой-либо причине запрос необходимо отправить повторно, создаётся новая подписка, от которой ожидается генерация тех же данных, что и ранее.

HTTP-клиент может не подписываться на BodyPublisher, сообщающий длину содержимого 0, поскольку фактически ему нечего публиковать.

Начиная с:
11
См. также:
  • HttpRequest.BodyPublishers

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

Модификатор и тип Метод Описание
long contentLength()
Возвращает длину содержимого для этого тела запроса.

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

subscribe
Модификатор и тип Метод Описание
void subscribe(Flow.Subscriber<? super ByteBuffer> subscriber)
Добавляет указанного подписчика, если это возможно.

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

contentLength

long contentLength()
Возвращает длину содержимого для этого тела запроса. Может быть равна нулю, если тело запроса не отправляется, больше нуля для содержимого фиксированной длины или меньше нуля, если длина содержимого неизвестна.

Этот метод может быть вызван до подписки на издателя. Реализация HTTP-клиента может вызывать этот метод несколько раз, и при каждом вызове он ДОЛЖЕН возвращать одно и то же постоянное значение.

Возвращает:
длину содержимого этого тела запроса, если она известна

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по 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