Интерфейс 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-клиент. Эти подписки завершаются нормально, когда тело запроса полностью отправлено, и могут быть отменены или прерваны раньше из-за ошибки. Если запрос необходимо отправить повторно по какой-либо причине, создается новая подписка, которая должна генерировать те же данные, что и раньше.
Издатель BodyPublisher , сообщающий о длине содержимого 0 , может не быть подписан на HTTP-клиентом, так как у него фактически нет данных для публикации.
- С:
- 11
- См. также:
HttpRequest.BodyPublishers
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
long |
contentLength() |
Возвращает длину содержимого для тела этого запроса. |
Методы, объявленные в интерфейсе java.util.concurrent.Flow.Publisher
subscribe
Методы
contentLength
long contentLength()
Возвращает длину содержимого для тела этого запроса. Может быть ноль, если тело запроса не отправляется, больше нуля для содержимого фиксированной длины или меньше нуля для неизвестной длины содержимого.
Этот метод может быть вызван до подписки на издателя. Этот метод может быть вызван реализацией HTTP-клиента более одного раза и ДОЛЖЕН возвращать одно и то же значение каждый раз.
- Возвращает:
- длину содержимого для тела этого запроса, если она известна
© 1993, 2020, 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/11/docs/api/java.net.http/java/net/http/HttpRequest.BodyPublisher.html