软件包  jdk.incubator.http

Interface HttpResponse.BodyProcessor<T>

  • 参数类型
    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则在身体被读取之前完成,因为调用代码使用它来使用数据。

    • 方法详细信息

      • 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::sendHttpClient::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与标准打开选项CREATEWRITE

        HttpResponse使用此处理器可在整个响应被读取之后。

        参数
        file - 存储身体的文件
        结果
        身体处理器
      • discard

        static <U> HttpResponse.BodyProcessor<U> discard​(U value)
        返回一个丢弃响应体的响应处理器。 提供的值是从HttpResponse.body()返回的值。
        参数类型
        U - 响应体的类型
        参数
        value - 从HttpResponse.body()返回的值
        结果
        一个 BodyProcessor