Интерфейс 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
- См. также:
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
long |
contentLength() |
Возвращает длину содержимого для этого тела запроса. |
Методы, объявленные в интерфейсе Flow.Publisher
subscribe | Модификатор и тип | Метод | Описание |
|---|---|---|
void |
subscribe |
Добавляет указанного подписчика, если это возможно. |
Подробное описание методов
contentLength
long contentLength()
Этот метод может быть вызван до подписки на издателя. Реализация HTTP-клиента может вызывать этот метод несколько раз, и при каждом вызове он ДОЛЖЕН возвращать одно и то же постоянное значение.
- Возвращает:
- длину содержимого этого тела запроса, если она известна
© 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.