Spec-Zone.ru › OpenJDK 25

Интерфейс 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

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

contentLength

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

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

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

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её дочерних компаний в США и других странах.
Авторское право © 1993, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.net.http/java/net/http/HttpRequest.BodyPublisher.html

Spec-Zone.ru

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