クラス 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.HttpContext
createHttpContext
(HttpMethod httpMethod, URISE uri) 指定された HTTP メソッドと URI のHttpContext
を作成するテンプレートメソッド。protected org.apache.hc.core5.http.ClassicHttpRequest
createHttpUriRequest
(HttpMethod httpMethod, URISE uri) 指定された HTTP メソッドと URI 仕様の Commons HttpMethodBase オブジェクトを作成します。createRequest
(URISE uri, HttpMethod httpMethod) 指定された URI および HTTP メソッドの新しいClientHttpRequest
を作成します。protected RequestConfig
createRequestConfig
(ObjectSE client) 指定されたクライアントで使用するデフォルトRequestConfig
を作成します。void
destroy()
基になるHttpClientConnectionManager
の接続プールがあれば、それを閉じるシャットダウンフック。同期実行に使用されるHttpClient
を返します。protected RequestConfig
mergeRequestConfig
(RequestConfig clientConfig) 必要に応じて、指定されたHttpClient
-levelRequestConfig
をファクトリレベルの構成とマージします。protected void
postProcessHttpRequest
(org.apache.hc.core5.http.ClassicHttpRequest request) HttpComponentsClientHttpRequest
の一部として返される前にClassicHttpRequest
を操作できるようにするテンプレートメソッド。void
setBufferRequestBody
(boolean bufferRequestBody) 非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。void
setConnectionRequestTimeout
(int connectionRequestTimeout) 基礎となるRequestConfig
を使用して接続マネージャーから接続をリクエストするときに使用されるタイムアウトをミリ秒単位で設定します。void
setConnectionRequestTimeout
(DurationSE connectionRequestTimeout) 基礎となるRequestConfig
を使用して接続マネージャーから接続をリクエストするときに使用されるタイムアウトをミリ秒単位で設定します。void
setConnectTimeout
(int connectTimeout) 基礎となるRequestConfig
の接続タイムアウトを設定します。void
setConnectTimeout
(DurationSE connectTimeout) 基礎となるRequestConfig
の接続タイムアウトを設定します。void
setHttpClient
(HttpClient httpClient) 同期実行に使用されるHttpClient
を設定します。void
setHttpContextFactory
(BiFunctionSE<HttpMethod, URISE, org.apache.hc.core5.http.protocol.HttpContext> httpContextFactory) リクエストごとにHttpContext
を事前に作成するようにファクトリを構成します。void
setReadTimeout
(int readTimeout) 基礎となるRequestConfig
のレスポンスタイムアウトを設定します。void
setReadTimeout
(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
であるかのようにバッファリングされないため