软件包  jdk.incubator.http

Interface HttpRequest.BodyProcessor

  • 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.SubscriberFlow.Publisher的正常语义由库实现,并由处理器实现预期。 每个出站请求都会导致一个Subscriber订阅Publisher ,以提供包含请求体的ByteBuffer的序列。 ByteBuffer必须由处理器分配,并且在交给库后不得访问。 当请求完全发送时,这些订阅正常完成,可以通过错误提前取消或终止。 如果由于任何原因需要重新发送请求,则会创建一个新的订阅,预期将生成与之前相同的数据。

    • 方法详细信息

      • 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
      • fromByteArrays

        static HttpRequest.BodyProcessor fromByteArrays​(Iterable<byte[]> iter)
        一个从Iterable字节数组获取数据的请求体处理器。 提供Iterable ,其中提供Iterator实例。 每次发送请求的尝试都会导致一次调用Iterable
        参数
        iter - 一个字节数组的 iter
        结果
        一个BodyProcessor
      • contentLength

        long contentLength​()
        返回此请求正文的内容长度。 如果不发送请求内容,固定长度内容大于零,未知内容长度小于零,则可以为零。
        结果
        该请求主体的内容长度如果已知