モジュール 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 - 本文の発行責任者
        戻り値:
        a BodyPublisher
      • fromPublisher

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

        与えられたcontentLengthは正の数で、publisherが公開しなければならない正確なバイト数を表します。

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

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

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

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

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

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

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

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

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

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

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