モジュール 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を作成します。
    • メソッドの詳細

      • newHttpClient

        public static HttpClient newHttpClient​()
        デフォルトの設定で新しいHttpClientを返します。
        戻り値:
        新しいHttpClient
      • newBuilder

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

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

        public abstract HttpClient.Redirect followRedirects​()
        このクライアントのフォロー・リダイレクト設定を返します。 この設定のデフォルト値はHttpClient.Redirect.NEVERです。
        戻り値:
        このクライアントはリダイレクト設定に従います
      • proxy

        public abstract Optional<ProxySelector> proxy​()
        このクライアントのProxySelectorを含むOptionalを返します。 プロキシが設定されていない場合、Optionalは空です。
        戻り値:
        このクライアント・プロキシ・セレクタを含むOptional
      • sslContext

        public abstract SSLContext sslContext​()
        このクライアントにSSLContextが設定されている場合はそれを返します。 セキュリティ・マネージャが設定されている場合、呼び出し元にはNetPermission("getSSLContext")権限が必要です。 SSLContextが設定されていない場合は、デフォルトのコンテキストが返されます。
        戻り値:
        このクライアントSSLContext
        例外:
        SecurityException - 呼び出し元にSSLContextを取得する権限がない場合
      • sslParameters

        public abstract Optional<SSLParameters> sslParameters​()
        このクライアントに設定されたSSLParametersを含むOptionalを返します。 SSLParametersがクライアント・ビルダーに設定されていない場合、Optionalは空です。
        戻り値:
        このクライアントを含むOptional 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 Executor executor​()
        このクライアントに設定されたExecutorを返します。 Executorがクライアント・ビルダーで設定されていない場合は、デフォルトのオブジェクトが返されます。 デフォルトのExecutorは、各クライアントごとに独立して作成されます。
        戻り値:
        このクライアントの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 - 操作が中断された場合
      • sendAsync

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

        public abstract <U,T> CompletableFuture<U> sendAsync​(HttpRequest req,
                                                             HttpResponse.MultiProcessor<U,T> multiProcessor)
        このクライアントと指定されたマルチ・レスポンス・ハンドラを使用して、指定されたリクエストを非同期に送信します。
        型パラメータ:
        U - 集計結果を表す型
        T - すべてのレスポンス体を表す型
        パラメータ:
        req - リクエスト
        multiProcessor - リクエストのマルチプロセッサ
        戻り値:
        CompletableFuture<U>
      • newWebSocketBuilder

        public WebSocket.Builder newWebSocketBuilder​(URI uri,
                                                     WebSocket.Listener listener)
        指定されたURIに接続されたWebSocketインスタンスのビルダーを作成し、指定されたListenerでイベントおよびメッセージを受信します。

        
             HttpClient client = HttpClient.newHttpClient();
             WebSocket.Builder builder = client.newWebSocketBuilder(
                     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();
             WebSocket.Builder builder = client.newWebSocketBuilder(
                     URI.create("ws://websocket.example.com"),
                     listener);
         
        実装要件:
        このメソッドのデフォルト実装は UnsupportedOperationExceptionをスローします。 ただし、newHttpClient()またはnewBuilder()で取得したクライアントはWebSocket機能を提供します。
        パラメータ:
        uri - WebSocket URI
        listener - リスナー
        戻り値:
        WebSocketインスタンスのビルダー
        例外:
        UnsupportedOperationException - このHttpClientがWebSocketサポートを提供しない場合