クラス HttpComponentsClientHttpRequestFactory
- 実装されているすべてのインターフェース:
DisposableBean,ClientHttpRequestFactory
ClientHttpRequestFactory 実装。 事前に構成された HttpClient インスタンスを使用できます。潜在的に認証、HTTP 接続プーリングなどを使用します。
注意 : Spring 6.0 以降では Apache HttpComponents 5.1 以降が必要です。
- 導入:
- 3.1
- 作成者:
- Oleg Kalnichevski, Arjen Poutsma, Stephane Nicoll, Juergen Hoeller
コンストラクターの概要
コンストラクターコンストラクター説明システムプロパティに基づいて、デフォルトのHttpClientでHttpComponentsClientHttpRequestFactoryの新しいインスタンスを作成します。HttpComponentsClientHttpRequestFactory(HttpClient httpClient) 指定されたHttpClientインスタンスを使用して、HttpComponentsClientHttpRequestFactoryの新しいインスタンスを作成します。メソッドのサマリー
修飾子と型メソッド説明protected org.apache.hc.core5.http.protocol.HttpContextcreateHttpContext(HttpMethod httpMethod, URISE uri) 指定された HTTP メソッドと URI に対してHttpContextを作成するテンプレートメソッド。protected org.apache.hc.core5.http.ClassicHttpRequestcreateHttpUriRequest(HttpMethod httpMethod, URISE uri) 指定された HTTP メソッドと URI 仕様の Commons HttpMethodBase オブジェクトを作成します。createRequest(URISE uri, HttpMethod httpMethod) 指定された URI および HTTP メソッドの新しいClientHttpRequestを作成します。protected RequestConfigcreateRequestConfig(ObjectSE client) 指定されたクライアントで使用するデフォルトRequestConfigを作成します。voiddestroy()基になるHttpClientConnectionManagerの接続プールがあれば、それを閉じるシャットダウンフック。同期実行に使用されるHttpClientを返します。protected RequestConfigmergeRequestConfig(RequestConfig clientConfig) 必要に応じて、指定されたHttpClient-levelRequestConfigをファクトリレベルの構成とマージします。protected voidpostProcessHttpRequest(org.apache.hc.core5.http.ClassicHttpRequest request) HttpComponentsClientHttpRequestの一部として返される前にClassicHttpRequestを操作できるようにするテンプレートメソッド。voidsetBufferRequestBody(boolean bufferRequestBody) 非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。voidsetConnectionRequestTimeout(int connectionRequestTimeout) 基礎となるRequestConfigを使用して接続マネージャーから接続をリクエストするときに使用されるタイムアウトをミリ秒単位で設定します。voidsetConnectionRequestTimeout(DurationSE connectionRequestTimeout) 基礎となるRequestConfigを使用して接続マネージャーから接続をリクエストするときに使用されるタイムアウトをミリ秒単位で設定します。voidsetConnectTimeout(int connectTimeout) 基礎となるRequestConfigの接続タイムアウトを設定します。voidsetConnectTimeout(DurationSE connectTimeout) 基礎となるRequestConfigの接続タイムアウトを設定します。voidsetHttpClient(HttpClient httpClient) 同期実行に使用されるHttpClientを設定します。voidsetHttpContextFactory(BiFunctionSE<HttpMethod, URISE, org.apache.hc.core5.http.protocol.HttpContext> httpContextFactory) リクエストごとにHttpContextを事前に作成するようにファクトリを構成します。voidsetReadTimeout(int readTimeout) 基礎となるRequestConfigのレスポンスタイムアウトを設定します。voidsetReadTimeout(DurationSE readTimeout) 基礎となるRequestConfigのレスポンスタイムアウトを設定します。
コンストラクターの詳細
HttpComponentsClientHttpRequestFactory
public HttpComponentsClientHttpRequestFactory()システムプロパティに基づいて、デフォルトのHttpClientでHttpComponentsClientHttpRequestFactoryの新しいインスタンスを作成します。HttpComponentsClientHttpRequestFactory
指定されたHttpClientインスタンスを使用して、HttpComponentsClientHttpRequestFactoryの新しいインスタンスを作成します。- パラメーター:
httpClient- このリクエストファクトリに使用する HttpClient インスタンス
メソッドの詳細
setHttpClient
同期実行に使用されるHttpClientを設定します。getHttpClient
同期実行に使用されるHttpClientを返します。setConnectTimeout
public void setConnectTimeout(int connectTimeout) 基礎となるRequestConfigの接続タイムアウトを設定します。タイムアウト値 0 は、無限のタイムアウトを指定します。カスタム
HttpClientでRequestConfigインスタンスを指定することにより、追加のプロパティを設定できます。このオプションは、SSL ハンドシェイクまたは CONNECT リクエストの接続タイムアウトには影響しません。そのためには、
HttpClient自体でSocketConfigを使用する必要があります。- パラメーター:
connectTimeout- ミリ秒単位のタイムアウト値- 関連事項:
RequestConfig.getConnectTimeout()SocketConfig.getSoTimeout()
setConnectTimeout
基礎となるRequestConfigの接続タイムアウトを設定します。タイムアウト値 0 は、無限のタイムアウトを指定します。カスタム
HttpClientでRequestConfigインスタンスを指定することにより、追加のプロパティを設定できます。このオプションは、SSL ハンドシェイクまたは CONNECT リクエストの接続タイムアウトには影響しません。そのためには、
HttpClient自体でSocketConfigを使用する必要があります。- パラメーター:
connectTimeout-Durationとしてのタイムアウト。- 導入:
- 6.1
- 関連事項:
RequestConfig.getConnectTimeout()SocketConfig.getSoTimeout()
setConnectionRequestTimeout
public void setConnectionRequestTimeout(int connectionRequestTimeout) 基礎となるRequestConfigを使用して接続マネージャーから接続をリクエストするときに使用されるタイムアウトをミリ秒単位で設定します。タイムアウト値 0 は、無限のタイムアウトを指定します。カスタム
HttpClientでRequestConfigインスタンスを指定することにより、追加のプロパティを設定できます。- パラメーター:
connectionRequestTimeout- ミリ秒単位の接続をリクエストするタイムアウト値- 関連事項:
setConnectionRequestTimeout
基礎となるRequestConfigを使用して接続マネージャーから接続をリクエストするときに使用されるタイムアウトをミリ秒単位で設定します。タイムアウト値 0 は、無限のタイムアウトを指定します。カスタム
HttpClientでRequestConfigインスタンスを指定することにより、追加のプロパティを設定できます。- パラメーター:
connectionRequestTimeout-Durationとして接続をリクエストするためのタイムアウト値。- 導入:
- 6.1
- 関連事項:
setReadTimeout
public void setReadTimeout(int readTimeout) 基礎となるRequestConfigのレスポンスタイムアウトを設定します。タイムアウト値 0 は、無制限のタイムアウトを指定します。カスタム
HttpClientでRequestConfigインスタンスを指定することにより、追加のプロパティを設定できます。- パラメーター:
readTimeout- ミリ秒単位のタイムアウト値- 導入:
- 6.2
- 関連事項:
setReadTimeout
基礎となるRequestConfigのレスポンスタイムアウトを設定します。タイムアウト値 0 は、無制限のタイムアウトを指定します。カスタム
HttpClientでRequestConfigインスタンスを指定することにより、追加のプロパティを設定できます。- パラメーター:
readTimeout-Durationとしてのタイムアウト。- 導入:
- 6.2
- 関連事項:
setBufferRequestBody
@DeprecatedSE(since="6.1", forRemoval=true) public void setBufferRequestBody(boolean bufferRequestBody) 非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。6.1 リクエストは、このプロパティがfalseであるかのようにバッファリングされないためこのリクエストファクトリがリクエストボディを内部でバッファリングするかどうかを示します。デフォルトは
trueです。POST または PUT を介して大量のデータを送信する場合、このプロパティをfalseに変更して、メモリが不足しないようにすることをお勧めします。- 導入:
- 4.0
setHttpContextFactory
public void setHttpContextFactory(BiFunctionSE<HttpMethod, URISE, org.apache.hc.core5.http.protocol.HttpContext> httpContextFactory) リクエストごとにHttpContextを事前に作成するようにファクトリを構成します。これは、たとえば、クライアント証明書ごとに異なる
RestTemplateを使用して、すべての呼び出しが同じクライアント ID に関連付けられた特定のRestTemplateインスタンスを介して行われる相互 TLS 認証で役立つ場合があります。HttpClientContext.setUserToken(Object)を使用して、すべてのリクエストに対して固定ユーザートークンを指定できます。- パラメーター:
httpContextFactory- 使用するコンテキストファクトリ- 導入:
- 5.2.7
createRequest
インターフェースからコピーされた説明:ClientHttpRequestFactory指定された URI および HTTP メソッドの新しいClientHttpRequestを作成します。返されたリクエストは、
ClientHttpRequest.execute()を呼び出して書き込み、実行できます。- 次で指定:
- インターフェース
ClientHttpRequestFactoryのcreateRequest - パラメーター:
uri- リクエストを作成する URIhttpMethod- 実行する HTTP メソッド- 戻り値:
- 作成されたリクエスト
- 例外:
IOExceptionSE- I/O エラーの場合
createRequestConfig
指定されたクライアントで使用するデフォルトRequestConfigを作成します。nullを返して、カスタムリクエスト構成を設定せず、HttpClientのデフォルトを使用する必要があることを示すことができます。デフォルトの実装は、クライアントのデフォルトを、このファクトリインスタンスのローカルカスタマイズ(存在する場合)とマージしようとします。
- パラメーター:
client- チェックするHttpClient(またはHttpAsyncClient)- 戻り値:
- 使用する実際の RequestConfig (
nullの場合があります) - 導入:
- 4.2
- 関連事項:
mergeRequestConfig
必要に応じて、指定されたHttpClient-levelRequestConfigをファクトリレベルの構成とマージします。- パラメーター:
clientConfig- 現在の設定が保持している- 戻り値:
- マージされたリクエスト設定
- 導入:
- 4.2
createHttpUriRequest
protected org.apache.hc.core5.http.ClassicHttpRequest createHttpUriRequest(HttpMethod httpMethod, URISE uri) 指定された HTTP メソッドと URI 仕様の Commons HttpMethodBase オブジェクトを作成します。- パラメーター:
httpMethod- HTTP メソッドuri- URI- 戻り値:
- Commons HttpMethodBase オブジェクト
postProcessHttpRequest
protected void postProcessHttpRequest(org.apache.hc.core5.http.ClassicHttpRequest request) HttpComponentsClientHttpRequestの一部として返される前にClassicHttpRequestを操作できるようにするテンプレートメソッド。デフォルトの実装は空です。
- パラメーター:
request- 処理するリクエスト
createHttpContext
@Nullable protected org.apache.hc.core5.http.protocol.HttpContext createHttpContext(HttpMethod httpMethod, URISE uri) 指定された HTTP メソッドと URI に対してHttpContextを作成するテンプレートメソッド。デフォルトの実装は
nullを返します。- パラメーター:
httpMethod- HTTP メソッドuri- URI- 戻り値:
- http コンテキスト
destroy
基になるHttpClientConnectionManagerの接続プールがあれば、それを閉じるシャットダウンフック。- 次で指定:
- インターフェース
DisposableBeanのdestroy - 例外:
ExceptionSE- シャットダウンエラーの場合。例外はログに記録されますが、再スローされず、他の Bean もリソースを解放できます。
falseであるかのようにバッファリングされないため