public class HttpComponentsClientHttpRequestFactory extends ObjectSE implements ClientHttpRequestFactory, DisposableBean
ClientHttpRequestFactory 実装。 事前構成された HttpClient インスタンスを使用できます。認証、HTTP 接続プールなどで使用できる可能性があります。
注意 : Spring 4.0 以降では Apache HttpComponents 4.3 以降が必要です。
| コンストラクターと説明 |
|---|
HttpComponentsClientHttpRequestFactory() システムプロパティに基づいて、デフォルトの HttpClient を使用して HttpComponentsClientHttpRequestFactory の新しいインスタンスを作成します。 |
HttpComponentsClientHttpRequestFactory(org.apache.http.client.HttpClient httpClient) 指定された HttpClient インスタンスを使用して HttpComponentsClientHttpRequestFactory の新しいインスタンスを作成します。 |
| 修飾子と型 | メソッドと説明 |
|---|---|
protected org.apache.http.protocol.HttpContext | createHttpContext(HttpMethod httpMethod, URISE uri) 指定された HTTP メソッドと URI の HttpContext を作成するテンプレートメソッド。 |
protected org.apache.http.client.methods.HttpUriRequest | createHttpUriRequest(HttpMethod httpMethod, URISE uri) 指定された HTTP メソッドと URI 仕様の Commons HttpMethodBase オブジェクトを作成します。 |
ClientHttpRequest | createRequest(URISE uri, HttpMethod httpMethod) 指定された URI および HTTP メソッドの新しい ClientHttpRequest を作成します。 |
protected org.apache.http.client.config.RequestConfig | createRequestConfig(ObjectSE client) 特定のクライアントで使用するデフォルトの RequestConfig を作成します。 |
void | destroy() 基盤となる ClientConnectionManager の接続プールがある場合はそれを閉じるシャットダウンフック。 |
org.apache.http.client.HttpClient | getHttpClient() 同期実行に使用される HttpClient を返します。 |
protected org.apache.http.client.config.RequestConfig | mergeRequestConfig(org.apache.http.client.config.RequestConfig clientConfig) 必要に応じて、指定された HttpClient -level RequestConfig をファクトリレベルの RequestConfig とマージします。 |
protected void | postProcessHttpRequest(org.apache.http.client.methods.HttpUriRequest request)HttpComponentsClientHttpRequest の一部として返される前に HttpUriRequest を操作できるようにするテンプレートメソッド。 |
void | setBufferRequestBody(boolean bufferRequestBody) このリクエストファクトリがリクエストボディを内部でバッファリングするかどうかを示します。 |
void | setConnectionRequestTimeout(int connectionRequestTimeout) 基礎となる RequestConfig を使用して接続マネージャーに接続をリクエストするときに使用されるタイムアウトをミリ秒単位で設定します。 |
void | setConnectTimeout(int timeout) 基になる RequestConfig の接続タイムアウトを設定します。 |
void | setHttpClient(org.apache.http.client.HttpClient httpClient) 同期実行に使用される HttpClient を設定します。 |
void | setHttpContextFactory(BiFunctionSE<HttpMethod, URISE,org.apache.http.protocol.HttpContext> httpContextFactory) リクエストごとに HttpContext を事前に作成するようにファクトリを構成します。 |
void | setReadTimeout(int timeout) 基礎となる RequestConfig のソケット読み取りタイムアウトを設定します。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSEpublic HttpComponentsClientHttpRequestFactory()
HttpClient を使用して HttpComponentsClientHttpRequestFactory の新しいインスタンスを作成します。public HttpComponentsClientHttpRequestFactory(org.apache.http.client.HttpClient httpClient)
HttpClient インスタンスを使用して HttpComponentsClientHttpRequestFactory の新しいインスタンスを作成します。httpClient - このリクエストファクトリに使用する HttpClient インスタンス public void setHttpClient(org.apache.http.client.HttpClient httpClient)
HttpClient を設定します。public org.apache.http.client.HttpClient getHttpClient()
HttpClient を返します。public void setConnectTimeout(int timeout)
RequestConfig の接続タイムアウトを設定します。タイムアウト値 0 は、無限のタイムアウトを指定します。 カスタム HttpClient で RequestConfig インスタンスを指定することにより、追加のプロパティを構成できます。
このオプションは、SSL ハンドシェイクまたは CONNECT リクエストの接続タイムアウトには影響しません。そのためには、HttpClient 自体で SocketConfig を使用する必要があります。
timeout - ミリ秒単位のタイムアウト値 RequestConfig.getConnectTimeout(), SocketConfig.getSoTimeout()public void setConnectionRequestTimeout(int connectionRequestTimeout)
RequestConfig を使用して接続マネージャーに接続をリクエストするときに使用されるタイムアウトをミリ秒単位で設定します。タイムアウト値 0 は、無限のタイムアウトを指定します。 カスタム HttpClient で RequestConfig インスタンスを指定することにより、追加のプロパティを構成できます。
connectionRequestTimeout - ミリ秒単位の接続をリクエストするタイムアウト値 RequestConfig.getConnectionRequestTimeout()public void setReadTimeout(int timeout)
RequestConfig のソケット読み取りタイムアウトを設定します。タイムアウト値 0 は、無限のタイムアウトを指定します。 カスタム HttpClient で RequestConfig インスタンスを指定することにより、追加のプロパティを構成できます。
timeout - ミリ秒単位のタイムアウト値 RequestConfig.getSocketTimeout()public void setBufferRequestBody(boolean bufferRequestBody)
デフォルトは true です。POST または PUT を介して大量のデータを送信する場合、このプロパティを false に変更して、メモリが不足しないようにすることをお勧めします。
public void setHttpContextFactory(BiFunctionSE<HttpMethod,URISE,org.apache.http.protocol.HttpContext> httpContextFactory)
HttpContext を事前に作成するようにファクトリを構成します。 これは、たとえば、クライアント証明書ごとに異なる RestTemplate があり、特定の RestTemplate インスタンスを介して行われるすべての呼び出しが同じクライアント ID に関連付けられている相互 TLS 認証で役立つ場合があります。HttpClientContext.setUserToken(Object) を使用して、すべてのリクエストに固定ユーザートークンを指定できます。
httpContextFactory - 使用するコンテキストファクトリ public ClientHttpRequest createRequest(URISE uri, HttpMethod httpMethod) throws IOExceptionSE
ClientHttpRequestFactoryClientHttpRequest を作成します。 返されたリクエストは、ClientHttpRequest.execute() を呼び出して書き込み、実行できます。
ClientHttpRequestFactory 内の createRequest uri - リクエストを作成する URIhttpMethod - 実行する HTTP メソッド IOExceptionSE - I/O エラーの場合 @Nullable protected org.apache.http.client.config.RequestConfig createRequestConfig(ObjectSE client)
RequestConfig を作成します。null を返して、カスタムリクエスト構成を設定する必要がなく、HttpClient のデフォルトを使用する必要があることを示すことができます。デフォルトの実装は、クライアントのデフォルトを、このファクトリインスタンスのローカルカスタマイズ(存在する場合)とマージしようとします。
client - チェックする HttpClient (または HttpAsyncClient)null の場合があります)mergeRequestConfig(RequestConfig)protected org.apache.http.client.config.RequestConfig mergeRequestConfig(org.apache.http.client.config.RequestConfig clientConfig)
HttpClient -level RequestConfig をファクトリレベルの RequestConfig とマージします。clientConfig - 現在の設定が保持している protected org.apache.http.client.methods.HttpUriRequest createHttpUriRequest(HttpMethod httpMethod, URISE uri)
httpMethod - HTTP メソッド uri - URIprotected void postProcessHttpRequest(org.apache.http.client.methods.HttpUriRequest request)
HttpComponentsClientHttpRequest の一部として返される前に HttpUriRequest を操作できるようにするテンプレートメソッド。デフォルトの実装は空です。
request - 処理するリクエスト @Nullable protected org.apache.http.protocol.HttpContext createHttpContext(HttpMethod httpMethod, URISE uri)
HttpContext を作成するテンプレートメソッド。 デフォルトの実装は null を返します。
httpMethod - HTTP メソッド uri - URIpublic void destroy()
throws ExceptionSEClientConnectionManager の接続プールがある場合はそれを閉じるシャットダウンフック。DisposableBean 内の destroy ExceptionSE - シャットダウンエラーの場合。例外はログに記録されますが、再スローされず、他の Bean もリソースを解放できます。