- java.lang.Object
- 
- jdk.incubator.http.HttpClient
 
- 
 public abstract class HttpClient extends Object 複数のHttpRequestsに共通する構成情報のためのコンテナ。 すべてのリクエストはHttpClientを介して送信されます。
 インキュベーション機能。将来のリリースで削除されます。HttpClientは不変であり、newBuilder()から返されたビルダーから作成されます。 リクエスト作成者は、HttpRequest.newBuilder()を呼び出すことによって作成されます。このAPIの使用例については、 HttpRequestを参照してください。- 導入されたバージョン:
- 9
 
- 
- 
ネストされたクラスのサマリーネストされたクラス 修飾子と型 クラス 説明 static classHttpClient.Builder不変のHttpClientのビルダー。static classHttpClient.Redirect自動リダイレクト・ポリシーを定義します。static classHttpClient.VersionHTTPプロトコルのバージョン。
 - 
コンストラクタのサマリーコンストラクタ 修飾子 コンストラクタ 説明 protectedHttpClient()HttpClientを作成します。
 - 
メソッドのサマリーすべてのメソッド staticメソッド インスタンス・メソッド 抽象メソッド 具象メソッド 修飾子と型 メソッド 説明 abstract Optional<Authenticator>authenticator()このクライアントに設定されたAuthenticatorを含むOptionalを返します。abstract Optional<CookieHandler>cookieHandler()このクライアントCookieHandlerを含むOptionalを返します。abstract Optional<Executor>executor()このクライアントExecutorを含むOptionalを返します。abstract HttpClient.RedirectfollowRedirects()このクライアントのフォロー・リダイレクト・ポリシーを返します。static HttpClient.BuildernewBuilder()新しいHttpClientビルダーを作成します。static HttpClientnewHttpClient()デフォルトの設定で新しいHttpClientを返します。WebSocket.BuildernewWebSocketBuilder()新しいWebSocketビルダー(オプションの操作)を作成します。abstract Optional<ProxySelector>proxy()このクライアントに提供されたProxySelectorを含むOptionalを返します。abstract <T> HttpResponse<T>send(HttpRequest req, HttpResponse.BodyHandler<T> responseBodyHandler)このクライアントを使用してリクエストを送信し、必要に応じてブロックしてレスポンスを取得します。abstract <T> CompletableFuture<HttpResponse<T>>sendAsync(HttpRequest req, HttpResponse.BodyHandler<T> responseBodyHandler)このクライアントと指定されたレスポンス・ハンドラを使用して、指定されたリクエストを非同期的に送信します。abstract <U,T> CompletableFuture<U>sendAsync(HttpRequest req, HttpResponse.MultiSubscriber<U,T> multiSubscriber)このクライアントと指定されたマルチ・レスポンス・ハンドラを使用して、指定されたリクエストを非同期に送信します。abstract SSLContextsslContext()このクライアントSSLContextを返します。abstract SSLParameterssslParameters()このクライアントSSLParametersのコピーを返します。abstract HttpClient.Versionversion()このクライアントにリクエストされたHTTPプロトコルのバージョンを返します。
 
- 
- 
- 
メソッドの詳細- 
newHttpClientpublic static HttpClient newHttpClient() デフォルトの設定で新しいHttpClientを返します。newBuilder().build()と等価です。デフォルト設定には: "GET"リクエスト・メソッド、HTTP/2のプリファレンス、NEVERのリダイレクション・ポリシー、「デフォルト・プロキシ・セレクタ」、および「デフォルトのSSLコンテキスト」があります。 - 実装上の注意:
- システム全体のデフォルト値は、HttpClientインスタンスの構築時に取得されます。 たとえばProxySelector.setDefault(ProxySelector)またはSSLContext.setDefault(SSLContext)を呼び出して、HttpClientインスタンスが構築された後にシステム全体の値を変更しても、すでにビルドされたインスタンスには影響しません。
- 戻り値:
- 新しいHttpClient
 
 - 
newBuilderpublic static HttpClient.Builder newBuilder() 新しいHttpClientビルダーを作成します。- 戻り値:
- HttpClient.Builder
 
 - 
cookieHandlerpublic abstract Optional<CookieHandler> cookieHandler() このクライアントCookieHandlerを含むOptionalを返します。 このクライアントビルダーにCookieHandlerが設定されていない場合、Optionalは空です。- 戻り値:
- このクライアントを含むOptionalCookieHandler
 
 - 
followRedirectspublic abstract HttpClient.Redirect followRedirects() このクライアントのフォロー・リダイレクト・ポリシーを返します。 リダイレクト・ポリシーを指定しないBuilderによって構築されたクライアントのデフォルト値はNEVERです。- 戻り値:
- このクライアントはリダイレクト設定に従います
 
 - 
proxypublic abstract Optional<ProxySelector> proxy() このクライアントに提供されたProxySelectorを含むOptionalを返します。 このクライアントビルダーにプロキシ・セレクタが設定されていない場合、Optionalは空です。このメソッドは空のオプションを返すかもしれませんが、 HttpClientには依然としてHTTPリクエストの送信に使用される「デフォルト・プロキシ・セレクタ」が公開されている場合があります。- 戻り値:
- このクライアントに提供されたプロキシ・セレクタを含むOptional。
 
 - 
sslContextpublic abstract SSLContext sslContext() このクライアントSSLContextを返します。このクライアントビルダーに SSLContextが設定されていない場合は、「デフォルト・コンテキスト」が返されます。- 戻り値:
- このクライアントSSLContext
 
 - 
sslParameterspublic abstract SSLParameters sslParameters() このクライアントSSLParametersのコピーを返します。SSLParametersがクライアントビルダーに設定されていない場合、クライアントが使用する実装固有のデフォルトのパラメータ・セットが返されます。- 戻り値:
- このクライアントSSLParameters
 
 - 
authenticatorpublic abstract Optional<Authenticator> authenticator() このクライアントに設定されたAuthenticatorを含むOptionalを返します。Authenticatorがクライアント・ビルダーに設定されていない場合、Optionalは空です。- 戻り値:
- このクライアントを含むOptionalAuthenticator
 
 - 
versionpublic abstract HttpClient.Version version() このクライアントにリクエストされたHTTPプロトコルのバージョンを返します。 デフォルト値はHttpClient.Version.HTTP_2です。- 戻り値:
- リクエストされたHTTPプロトコルのバージョン
 
 - 
executorpublic abstract Optional<Executor> executor() このクライアントExecutorを含むOptionalを返します。Executorがクライアント・ビルダーに設定されていない場合、Optionalは空です。このメソッドは空のオプションを返すかもしれませんが、 HttpClientには、非同期および依存タスクの実行に使用される「デフォルトのエグゼキュータ」がまだ公開されていないことがあります。- 戻り値:
- このクライアントを含むOptionalExecutor
 
 - 
sendpublic 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を参照してください。
 
 - 
sendAsyncpublic 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>>
 
 - 
sendAsyncpublic 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>
 
 - 
newWebSocketBuilderpublic 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()で取得したクライアントは、WebSocketBuilderを返します。
- 実装上の注意:
- ビルダーとそれで作成されたWebSocketの両方が、非ブロッキングの方法で動作します。 つまり、それらのメソッドはCompletableFutureを返す前にブロックしません。 非同期タスクは、このHttpClientエグゼキュータで実行されます。CompletionStageがListener.onCloseから返されると、WebSocketは、受信したメッセージと同じコードを持ち、空の理由があるCloseメッセージを送信します。
- 戻り値:
- a WebSocket.Builder
- 例外:
- UnsupportedOperationException- この- HttpClientがWebSocketサポートを提供しない場合
 
 
- 
 
-