モジュール java.net.http
パッケージ java.net.http

クラスHttpRequest.BodyPublishers

  • 含まれているクラス:
    HttpRequest

    public static class HttpRequest.BodyPublishers
    extends Object
    Stringからのリクエスト本文の公開やファイルからの公開など、各種の便利なパブリッシャを実装するBodyPublisherの実装。

    次に、事前定義済本体のパブリッシャを使用して、共通の高水準のJavaオブジェクトをリクエスト本文として送信するのに適したデータ・フローに変換する例を示します。

       // Request body from a String
       HttpRequest request = HttpRequest.newBuilder()
            .uri(URI.create("https://foo.com/"))
            .header("Content-Type", "text/plain; charset=UTF-8")
            .POST(BodyPublishers.ofString("some body text"))
            .build();
    
       // Request body from a File
       HttpRequest request = HttpRequest.newBuilder()
            .uri(URI.create("https://foo.com/"))
            .header("Content-Type", "application/json")
            .POST(BodyPublishers.ofFile(Paths.get("file.json")))
            .build();
    
       // Request body from a byte array
       HttpRequest request = HttpRequest.newBuilder()
            .uri(URI.create("https://foo.com/"))
            .POST(BodyPublishers.ofByteArray(new byte[] { ... }))
            .build(); 

    導入されたバージョン:
    11
    • メソッドの詳細

      • fromPublisher

        public static HttpRequest.BodyPublisher fromPublisher​(Flow.Publisher<? extends ByteBuffer> publisher)
        指定されたFlow.Publisherから本文が取得されるリクエスト本文パブリッシャを返します。 返されたリクエスト本文パブリッシャに不明なコンテンツ長があります。
        APIに関するノート:
        このメソッドは、パブリッシャが公開するリクエスト本文の量が不明である BodyPublisherFlow.Publisherの間のアダプタとして使用できます。
        パラメータ:
        publisher - 本文の公開を担当するパブリッシャ
        戻り値:
        BodyPublisher
      • fromPublisher

        public static HttpRequest.BodyPublisher fromPublisher​(Flow.Publisher<? extends ByteBuffer> publisher,
                                                              long contentLength)
        指定されたFlow.Publisherから本文が取得されるリクエスト本文パブリッシャを返します。 返されたリクエスト本文パブリッシャは、指定されたコンテンツ長を持ちます。

        指定されたcontentLengthは正の数で、publisherが公開する必要があるバイトの正確な量を表します。

        APIに関するノート:
        このメソッドは、パブリッシャが公開するリクエスト本文の量がわかっている BodyPublisherFlow.Publisherの間のアダプタとして使用できます。
        パラメータ:
        publisher - 本文の公開を担当するパブリッシャ
        contentLength - パブリッシャが公開する正確なバイト数を表す正の数値
        戻り値:
        BodyPublisher
        例外:
        IllegalArgumentException - コンテンツの長さが正でない場合
      • ofString

        public static HttpRequest.BodyPublisher ofString​(String body)
        本体が指定された Stringであり、UTF_8文字セットを使用して変換されたリクエスト本文パブリッシャを返します。
        パラメータ:
        body - 本体を含む文字列
        戻り値:
        BodyPublisher
      • ofString

        public static HttpRequest.BodyPublisher ofString​(String s,
                                                         Charset charset)
        本体が指定された Stringであり、指定された文字セットを使用して変換されたリクエスト本文パブリッシャを返します。
        パラメータ:
        s - 本体を含む文字列
        charset - 文字列をバイトに変換する文字セット
        戻り値:
        BodyPublisher
      • ofInputStream

        public static HttpRequest.BodyPublisher ofInputStream​(Supplier<? extends InputStream> streamSupplier)
        InputStreamからデータを読み取るリクエスト本文パブリッシャ。 InputStreamSupplierは、コンテンツがバッファリングされないため、リクエストを繰り返す必要がある場合に使用されます。 Supplierは、後続の試行でnullを返す場合があり、その場合、リクエストは失敗します。
        パラメータ:
        streamSupplier - オープンInputStreamsのサプライヤ
        戻り値:
        BodyPublisher
      • ofByteArray

        public static HttpRequest.BodyPublisher ofByteArray​(byte[] buf)
        本体が指定されたバイト配列であるリクエスト本文パブリッシャを返します。
        パラメータ:
        buf - 本体を含むバイト配列
        戻り値:
        BodyPublisher
      • ofByteArray

        public static HttpRequest.BodyPublisher ofByteArray​(byte[] buf,
                                                            int offset,
                                                            int length)
        指定されたoffsetから始まるlengthバイトの指定されたバイト配列のコンテンツであるリクエスト本文パブリッシャを返します。
        パラメータ:
        buf - 本体を含むバイト配列
        offset - 最初のバイトのオフセット
        length - 使用するバイト数
        戻り値:
        BodyPublisher
        例外:
        IndexOutOfBoundsException - サブ範囲が範囲外として定義されている場合
      • ofFile

        public static HttpRequest.BodyPublisher ofFile​(Path path)
                                                throws FileNotFoundException
        ファイルの内容からデータを取得するリクエスト本文パブリッシャ。

        BodyPublisherが作成されると、このファクトリ・メソッドでセキュリティ・マネージャの権限チェックが実行されます。 BodyPublisherが信頼できないコードと共有されないことに注意してください。

        パラメータ:
        path - 本体を含むファイルへのパス
        戻り値:
        BodyPublisher
        例外:
        FileNotFoundException - パスが見つからない場合
        SecurityException - セキュリティ・マネージャがインストールされ、指定されたファイルに対するread accessが拒否された場合
      • ofByteArrays

        public static HttpRequest.BodyPublisher ofByteArrays​(Iterable<byte[]> iter)
        バイト配列のIterableからデータを取得するリクエスト本文パブリッシャ。 Iteratorインスタンスを提供するIterableが提供されています。 リクエストを送信しようとするたびに、Iterableが1回起動されます。
        パラメータ:
        iter - バイト配列の反復可能値
        戻り値:
        BodyPublisher
      • noBody

        public static HttpRequest.BodyPublisher noBody()
        リクエスト本文を送信しないリクエスト本文パブリッシャ。
        戻り値:
        すぐに完了し、リクエスト本文を送信しないBodyPublisher。