クラス HttpComponentsClientHttpRequestFactory
java.lang.ObjectSE
org.springframework.http.client.HttpComponentsClientHttpRequestFactory
- 実装されているすべてのインターフェース:
DisposableBean, ClientHttpRequestFactory
public class HttpComponentsClientHttpRequestFactory
extends ObjectSE
implements ClientHttpRequestFactory, DisposableBean
Apache HttpComponents HttpClient を使用してリクエストを作成する
ClientHttpRequestFactory 実装。 事前に構成された HttpClient インスタンスを使用できます。潜在的に認証、HTTP 接続プーリングなどを使用します。
注意 : Apache HttpComponents 5.1 以上が必要です。
- 導入:
- 3.1
- 作成者:
- Oleg Kalnichevski, Arjen Poutsma, Stephane Nicoll, Juergen Hoeller
コンストラクターの概要
コンストラクターコンストラクター説明システムプロパティに基づいて、デフォルトのHttpClientでHttpComponentsClientHttpRequestFactoryの新しいインスタンスを作成します。HttpComponentsClientHttpRequestFactory(HttpClient httpClient) 指定されたHttpClientインスタンスを使用して、HttpComponentsClientHttpRequestFactoryの新しいインスタンスを作成します。メソッドのサマリー
修飾子と型メソッド説明protected @Nullable 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 @Nullable RequestConfigcreateRequestConfig(ObjectSE client) 指定されたクライアントで使用するデフォルトRequestConfigを作成します。voiddestroy()基になるHttpClientConnectionManagerの接続プールがあれば、それを閉じるシャットダウンフック。同期実行に使用されるHttpClientを返します。protected RequestConfigmergeRequestConfig(RequestConfig clientConfig) 必要に応じて、指定されたHttpClient-levelRequestConfigをファクトリレベルの構成とマージします。protected voidpostProcessHttpRequest(org.apache.hc.core5.http.ClassicHttpRequest request) HttpComponentsClientHttpRequestの一部として返される前にClassicHttpRequestを操作できるようにするテンプレートメソッド。voidsetConnectionRequestTimeout(int connectionRequestTimeout) 基礎となるRequestConfigを使用して接続マネージャーから接続をリクエストするときに使用されるタイムアウトをミリ秒単位で設定します。voidsetConnectionRequestTimeout(DurationSE connectionRequestTimeout) 基礎となる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を返します。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
- 関連事項:
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
protected @Nullable 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 もリソースを解放できます。