モジュール jdk.incubator.httpclient
パッケージ jdk.incubator.http

クラスHttpClient


  • public abstract class HttpClient
    extends Object
    複数のHttpRequest sに共通する構成情報のためのコンテナ。 すべてのリクエストはHttpClientを介して送信されます。
    インキュベーション機能。将来のリリースで削除されます。

    HttpClientは不変であり、newBuilder()から返されたビルダーから作成されます。 リクエスト作成者は、HttpRequest.newBuilder()を呼び出すことによって作成されます。

    このAPIの使用例については、HttpRequestを参照してください。

    導入されたバージョン:
    9
    • コンストラクタの詳細

      • HttpClient

        protected HttpClient()
        HttpClientを作成します。
    • メソッドの詳細

      • newBuilder

        public static HttpClient.Builder newBuilder()
        新しいHttpClientビルダーを作成します。
        戻り値:
        HttpClient.Builder
      • cookieHandler

        public abstract Optional<CookieHandler> cookieHandler()
        このクライアントCookieHandlerを含むOptionalを返します。 このクライアントビルダーにCookieHandlerが設定されていない場合、Optionalは空です。
        戻り値:
        このクライアントを含むOptional CookieHandler
      • followRedirects

        public abstract HttpClient.Redirect followRedirects()
        このクライアントのフォロー・リダイレクト・ポリシーを返します。 リダイレクト・ポリシーを指定しないBuilderによって構築されたクライアントのデフォルト値はNEVERです。
        戻り値:
        このクライアントはリダイレクト設定に従います
      • proxy

        public abstract Optional<ProxySelector> proxy()
        このクライアントに提供されたProxySelectorを含むOptionalを返します。 このクライアントビルダーにプロキシ・セレクタが設定されていない場合、Optionalは空です。

        このメソッドは空のオプションを返すかもしれませんが、 HttpClientには依然としてHTTPリクエストの送信に使用される「デフォルト・プロキシ・セレクタ」が公開されている場合があります。

        戻り値:
        このクライアントに提供されたプロキシ・セレクタを含むOptional
      • sslContext

        public abstract SSLContext sslContext()
        このクライアントSSLContextを返します。

        このクライアントビルダーにSSLContextが設定されていない場合は、「デフォルト・コンテキスト」が返されます。

        戻り値:
        このクライアントSSLContext
      • sslParameters

        public abstract SSLParameters sslParameters()
        このクライアントSSLParametersのコピーを返します。

        SSLParametersがクライアントビルダーに設定されていない場合、クライアントが使用する実装固有のデフォルトのパラメータ・セットが返されます。

        戻り値:
        このクライアントSSLParameters
      • authenticator

        public abstract Optional<Authenticator> authenticator()
        このクライアントに設定されたAuthenticatorを含むOptionalを返します。 Authenticatorがクライアント・ビルダーに設定されていない場合、Optionalは空です。
        戻り値:
        このクライアントを含むOptional Authenticator
      • version

        public abstract HttpClient.Version version()
        このクライアントにリクエストされたHTTPプロトコルのバージョンを返します。 デフォルト値はHttpClient.Version.HTTP_2です。
        戻り値:
        リクエストされたHTTPプロトコルのバージョン
      • executor

        public abstract Optional<Executor> executor()
        このクライアントExecutorを含むOptionalを返します。 Executorがクライアント・ビルダーに設定されていない場合、Optionalは空です。

        このメソッドは空のオプションを返すかもしれませんが、 HttpClientには、非同期および依存タスクの実行に使用される「デフォルトのエグゼキュータ」がまだ公開されていないことがあります。

        戻り値:
        このクライアントを含むOptional Executor
      • send

        public abstract <T> HttpResponse<T> send​(HttpRequest req,
                                                 HttpResponse.BodyHandler<T> responseBodyHandler)
                                          throws IOException,
                                                 InterruptedException
        このクライアントを使用してリクエストを送信し、必要に応じてブロックしてレスポンスを取得します。 返されたHttpResponse <T>には、レスポンス・ステータス、ヘッダー、および本文(指定されたレスポンス本文ハンドラによって処理される)が含まれています。
        型パラメータ:
        T - レスポンス本文型
        パラメータ:
        req - リクエスト
        responseBodyHandler - レスポンス本文ハンドラ
        戻り値:
        レスポンス本文
        例外:
        IOException - 送信または受信時にI/Oエラーが発生した場合
        InterruptedException - 操作が中断された場合
        IllegalArgumentException - リクエスト・メソッドがサポートされていない場合
        SecurityException - セキュリティ・マネージャがインストールされていて、指定されたリクエストのURLにaccessを拒否した場合、またはプロキシが構成されている場合はプロキシを拒否します。 「セキュリティ・チェック」の詳細については、HttpRequestを参照してください。
      • sendAsync

        public abstract <T> CompletableFuture<HttpResponse<T>> sendAsync​(HttpRequest req,
                                                                         HttpResponse.BodyHandler<T> responseBodyHandler)
        このクライアントと指定されたレスポンス・ハンドラを使用して、指定されたリクエストを非同期的に送信します。

        返された完了可能な未来は例外的に次のように完了します:

        • IOException - 送信時または受信時にI/Oエラーが発生した場合
        • IllegalArgumentException - リクエスト・メソッドがサポートされていない場合
        • SecurityException - セキュリティ・マネージャがインストールされていて、指定されたリクエストのURLにaccessを拒否した場合、またはプロキシが構成されている場合はプロキシを拒否します。 「セキュリティ・チェック」の詳細については、HttpRequestを参照してください。
        型パラメータ:
        T - レスポンス本文型
        パラメータ:
        req - リクエスト
        responseBodyHandler - レスポンス本文ハンドラ
        戻り値:
        CompletableFuture<HttpResponse<T>>
      • sendAsync

        public abstract <U,T> CompletableFuture<U> sendAsync​(HttpRequest req,
                                                             HttpResponse.MultiSubscriber<U,T> multiSubscriber)
        このクライアントと指定されたマルチ・レスポンス・ハンドラを使用して、指定されたリクエストを非同期に送信します。

        返された完了可能な未来は例外的に次のように完了します:

        • IOException - 送信時または受信時にI/Oエラーが発生した場合
        • IllegalArgumentException - リクエスト・メソッドがサポートされていない場合
        • SecurityException - セキュリティ・マネージャがインストールされていて、指定されたリクエストのURLにaccessを拒否した場合、またはプロキシが構成されている場合はプロキシを拒否します。 「セキュリティ・チェック」の詳細については、HttpRequestを参照してください。
        型パラメータ:
        U - 集計結果を表す型
        T - すべてのレスポンス体を表す型
        パラメータ:
        req - リクエスト
        multiSubscriber - リクエストのmultiSubscriber
        戻り値:
        CompletableFuture<U>
      • newWebSocketBuilder

        public WebSocket.Builder newWebSocketBuilder()
        新しいWebSocketビルダー(オプションの操作)を作成します。

        
             HttpClient client = HttpClient.newHttpClient();
             CompletableFuture<WebSocket> ws = client.newWebSocketBuilder()
                     .buildAsync(URI.create("ws://websocket.example.com"), listener);
         

        カスタムのHttpClientを使用すると、WebSocketオープニング・ハンドシェイクの細かい制御が可能になります。

        
             InetSocketAddress addr = new InetSocketAddress("proxy.example.com", 80);
             HttpClient client = HttpClient.newBuilder()
                     .proxy(ProxySelector.of(addr))
                     .build();
             CompletableFuture<WebSocket> ws = client.newWebSocketBuilder()
                     .buildAsync(URI.create("ws://websocket.example.com"), listener);
         

        このメソッドから返されたWebSocket.Builderは、外部同期なしで複数のスレッドで使用することは安全ではありません。

        実装要件:
        このメソッドのデフォルト実装はUnsupportedOperationExceptionをスローします。 newHttpClient()またはnewBuilder()で取得したクライアントは、WebSocket Builderを返します。
        実装上の注意:
        ビルダーとそれで作成されたWebSocketの両方が、非ブロッキングの方法で動作します。 つまり、それらのメソッドはCompletableFutureを返す前にブロックしません。 非同期タスクは、このHttpClientエグゼキュータで実行されます。

        CompletionStageListener.onCloseから返されると、WebSocketは、受信したメッセージと同じコードを持ち、空の理由があるCloseメッセージを送信します。

        戻り値:
        a WebSocket.Builder
        例外:
        UnsupportedOperationException - このHttpClientがWebSocketサポートを提供しない場合