-
- All Superinterfaces:
-
Flow.Publisher<ByteBuffer>
- Enclosing class:
- HttpRequest
public static interface HttpRequest.BodyProcessor extends Flow.Publisher<ByteBuffer>
将高级Java对象转换为适合作为请求体发送的ByteBuffer
的流的处理器 。
Incubating Feature.将在以后的版本中删除。BodyProcessor
的实现Flow.Publisher
这意味着它们作为字节缓冲区的发布者。HTTP客户机实现订阅处理器以便接收输出数据缓冲器的流。
Flow.Subscriber
和Flow.Publisher
的正常语义由库实现,并由处理器实现预期。 每个出站请求都会导致一个Subscriber
订阅Publisher
,以提供包含请求体的ByteBuffer
的序列。ByteBuffer
必须由处理器分配,并且在交给库后不得访问。 当请求完全发送时,这些订阅正常完成,可以通过错误提前取消或终止。 如果由于任何原因需要重新发送请求,则会创建一个新的订阅,预期将生成与之前相同的数据。
-
-
方法摘要
所有方法 静态方法 接口方法 抽象方法 Default Methods Modifier and Type 方法 描述 long
contentLength()
返回此请求正文的内容长度。static HttpRequest.BodyProcessor
fromByteArray(byte[] buf)
返回一个请求体处理器,其主体是给定的字节数组。static HttpRequest.BodyProcessor
fromByteArray(byte[] buf, int offset, int length)
返回一个请求体处理器,其主体是从指定的offset
开始的给定字节数组的内容为length
个字节。static HttpRequest.BodyProcessor
fromByteArrays(Iterable<byte[]> iter)
从Iterable
字节数组获取数据的请求体处理器。static HttpRequest.BodyProcessor
fromFile(Path path)
从文件的内容获取数据的请求体处理器。static HttpRequest.BodyProcessor
fromInputStream(Supplier<? extends InputStream> streamSupplier)
一个请求体处理器,从InputStream
读取其数据。static HttpRequest.BodyProcessor
fromString(String body)
返回一个请求体处理器,其身体是给定的String
,使用UTF_8
字符集进行转换。static HttpRequest.BodyProcessor
fromString(String s, Charset charset)
返回一个请求体处理器,其身体是给定的String
,使用给定的字符集进行转换。-
Methods inherited from interface java.util.concurrent.Flow.Publisher
subscribe
-
-
-
-
方法详细信息
-
fromString
static HttpRequest.BodyProcessor fromString(String body)
返回一个请求体处理器,其身体是给定的String
,使用UTF_8
字符集进行转换。- 参数
-
body
- 包含正文的字符串 - 结果
- 一个BodyProcessor
-
fromString
static HttpRequest.BodyProcessor fromString(String s, Charset charset)
返回一个请求体处理器,其身体是给定的String
,使用给定的字符集进行转换。- 参数
-
s
- 包含正文的字符串 -
charset
- 将字符串转换为字节的字符集 - 结果
- 一个BodyProcessor
-
fromInputStream
static HttpRequest.BodyProcessor fromInputStream(Supplier<? extends InputStream> streamSupplier)
一个请求体处理器,从InputStream
读取其数据。 在InputStream中的InputStream
被用于在内容未被缓冲时需要再次发送请求的情况下。Supplier
可能会在后续尝试中返回null
,在这种情况下,请求失败。- 参数
-
streamSupplier
- 开放InputStreams供应商 - 结果
- 一个BodyProcessor
-
fromByteArray
static HttpRequest.BodyProcessor fromByteArray(byte[] buf)
返回一个请求体处理器,其主体是给定的字节数组。- 参数
-
buf
- 包含正文的字节数组 - 结果
- 一个BodyProcessor
-
fromByteArray
static HttpRequest.BodyProcessor fromByteArray(byte[] buf, int offset, int length)
返回一个请求体处理器,其主体是从指定的offset
开始的给定字节数组的内容为length
个字节。- 参数
-
buf
- 包含正文的字节数组 -
offset
- 第一个字节的偏移量 -
length
- 要使用的字节数 - 结果
- 一个BodyProcessor
-
fromFile
static HttpRequest.BodyProcessor fromFile(Path path) throws FileNotFoundException
从文件的内容获取数据的请求体处理器。- 参数
-
path
- 包含正文的文件的路径 - 结果
- 一个BodyProcessor
- 异常
-
FileNotFoundException
- 如果找不到路径
-
fromByteArrays
static HttpRequest.BodyProcessor fromByteArrays(Iterable<byte[]> iter)
- 参数
-
iter
- 一个字节数组的iter
- 结果
- 一个BodyProcessor
-
contentLength
long contentLength()
返回此请求正文的内容长度。 如果不发送请求内容,固定长度内容大于零,未知内容长度小于零,则可以为零。- 结果
- 该请求主体的内容长度如果已知
-
-