-
- 参数类型
-
T
- 响应体类型
- All Superinterfaces:
-
Flow.Subscriber<ByteBuffer>
- Enclosing class:
- HttpResponse < T >
public static interface HttpResponse.BodyProcessor<T> extends Flow.Subscriber<ByteBuffer>
响应机构的处理器。
Incubating Feature.将在以后的版本中删除。该对象作为发布包含响应正文的ByteBuffers的HTTP客户端实现的
Flow.Subscriber
<ByteBuffer
>。 处理器将传入的数据缓冲区转换为某些用户定义的对象类型T
。getBody()
方法返回一个CompletionStage
<T>
,它提供响应体对象。CompletionStage
必须随时获得。 完成时取决于T
型的性质。 在许多情况下,当T
代表整个身体时,它在身体被读取之后就完成了。 如果T
是一个流媒体类型,如InputStream
,则在身体被读取之前完成,因为调用代码使用它来使用数据。
-
-
方法摘要
所有方法 静态方法 接口方法 抽象方法 Default Methods Modifier and Type 方法 描述 static HttpResponse.BodyProcessor<byte[]>
asByteArray()
返回一个BodyProcessor
,它将响应体存储为字节数组。static HttpResponse.BodyProcessor<Void>
asByteArrayConsumer(Consumer<Optional<byte[]>> consumer)
返回一个BodyProcessor
,它将传入的身体数据提供给提供的消费者Optional<byte[]>
。static HttpResponse.BodyProcessor<Path>
asFile(Path file)
返回一个BodyProcessor
,它将响应正文存储在以给定名称打开的文件中。static HttpResponse.BodyProcessor<Path>
asFile(Path file, OpenOption... openOptions)
返回一个BodyProcessor
,它将响应体存储在用给定选项和名称打开的文件中。static HttpResponse.BodyProcessor<String>
asString(Charset charset)
返回一个主体处理器,其存储响应主体作为String
使用给定的转换Charset
。static <U> HttpResponse.BodyProcessor<U>
discard(U value)
返回一个丢弃响应体的响应处理器。CompletionStage<T>
getBody()
返回一个CompletionStage
,当完成后将返回响应体对象。-
Methods inherited from interface java.util.concurrent.Flow.Subscriber
onComplete, onError, onNext, onSubscribe
-
-
-
-
方法详细信息
-
getBody
CompletionStage<T> getBody()
返回一个CompletionStage
,当完成后将返回响应体对象。- 结果
- 响应机构的CompletionStage
-
asString
static HttpResponse.BodyProcessor<String> asString(Charset charset)
返回一个主体处理器,其存储响应主体作为String
使用给定的转换Charset
。HttpResponse
使用此处理器在整个响应已被读取后可用。- 参数
-
charset
- 用于转换字符串的字符集 - 结果
- 身体处理器
-
asByteArray
static HttpResponse.BodyProcessor<byte[]> asByteArray()
返回一个BodyProcessor
,它将响应体存储为字节数组。在完整的响应被读取之后,使用此处理器的
HttpResponse
可用。- 结果
- 身体处理器
-
asFile
static HttpResponse.BodyProcessor<Path> asFile(Path file, OpenOption... openOptions)
返回一个BodyProcessor
,它将响应正文放在使用给定选项和名称打开的文件中。 该文件将使用FileChannel.open
在身体读取之前使用给定的选项打开。 抛出的任何异常将根据情况从HttpClient::send
或HttpClient::sendAsync
返回或抛出。使用此处理器的
HttpResponse
在读取完整响应后可用。- 参数
-
file
- 存储身体的文件 -
openOptions
- 打开文件的选项列表 - 结果
- 身体处理器
-
asByteArrayConsumer
static HttpResponse.BodyProcessor<Void> asByteArrayConsumer(Consumer<Optional<byte[]>> consumer)
返回一个BodyProcessor
,它将传入的身体数据提供给提供的消费者Optional<byte[]>
。 每次调用Consumer.accept()
将包含一个非空的Optional
,除了所有身体数据被读取之后的最终调用,当Optional
将为空时。在完整的响应被读取之后,使用这个处理器的
HttpResponse
可以使用。- 参数
-
consumer
- 字节数组的消费者 - 结果
- 一个BodyProcessor
-
asFile
static HttpResponse.BodyProcessor<Path> asFile(Path file)
返回一个BodyProcessor
,它将响应正文放在使用给定名称打开的文件中。 与调用同样的效果asFile
与标准打开选项CREATE
和WRITE
HttpResponse
使用此处理器可在整个响应被读取之后。- 参数
-
file
- 存储身体的文件 - 结果
- 身体处理器
-
discard
static <U> HttpResponse.BodyProcessor<U> discard(U value)
返回一个丢弃响应体的响应处理器。 提供的值是从HttpResponse.body()
返回的值。- 参数类型
-
U
- 响应体的类型 - 参数
-
value
- 从HttpResponse.body()返回的值 - 结果
-
一个
BodyProcessor
-
-