クラス HttpComponentsClientHttpRequestFactory

java.lang.ObjectSE
org.springframework.http.client.HttpComponentsClientHttpRequestFactory
実装されたすべてのインターフェース:
DisposableBeanClientHttpRequestFactory

public class HttpComponentsClientHttpRequestFactory extends ObjectSE implements ClientHttpRequestFactory, DisposableBean
Apache HttpComponents HttpClient を使用してリクエストを作成する ClientHttpRequestFactory 実装。

事前に構成された HttpClient インスタンスを使用できます。潜在的に認証、HTTP 接続プーリングなどを使用します。

注意 : Spring 6.0 以降では Apache HttpComponents 5.1 以降が必要です。

導入:
3.1
作成者:
Oleg Kalnichevski, Arjen Poutsma, Stephane Nicoll, Juergen Hoeller
  • コンストラクターの詳細

    • HttpComponentsClientHttpRequestFactory

      public HttpComponentsClientHttpRequestFactory()
      システムプロパティに基づいて、デフォルトの HttpClient で HttpComponentsClientHttpRequestFactory の新しいインスタンスを作成します。
    • HttpComponentsClientHttpRequestFactory

      public HttpComponentsClientHttpRequestFactory(HttpClient httpClient)
      指定された HttpClient インスタンスを使用して、HttpComponentsClientHttpRequestFactory の新しいインスタンスを作成します。
      パラメーター:
      httpClient - このリクエストファクトリに使用する HttpClient インスタンス
  • メソッドの詳細

    • setHttpClient

      public void setHttpClient(HttpClient httpClient)
      同期実行に使用される HttpClient を設定します。
    • getHttpClient

      public HttpClient getHttpClient()
      同期実行に使用される HttpClient を返します。
    • setConnectTimeout

      public void setConnectTimeout(int connectTimeout)
      基礎となる RequestConfig の接続タイムアウトを設定します。タイムアウト値 0 は、無限のタイムアウトを指定します。

      カスタム HttpClientRequestConfig インスタンスを指定することにより、追加のプロパティを設定できます。

      このオプションは、SSL ハンドシェイクまたは CONNECT リクエストの接続タイムアウトには影響しません。そのためには、HttpClient 自体で SocketConfig を使用する必要があります。

      パラメーター:
      connectTimeout - ミリ秒単位のタイムアウト値
      関連事項:
    • setConnectTimeout

      public void setConnectTimeout(DurationSE connectTimeout)
      基礎となる RequestConfig の接続タイムアウトを設定します。タイムアウト値 0 は、無限のタイムアウトを指定します。

      カスタム HttpClientRequestConfig インスタンスを指定することにより、追加のプロパティを設定できます。

      このオプションは、SSL ハンドシェイクまたは CONNECT リクエストの接続タイムアウトには影響しません。そのためには、HttpClient 自体で SocketConfig を使用する必要があります。

      パラメーター:
      connectTimeout - ミリ秒単位のタイムアウト値
      導入:
      6.1
      関連事項:
    • setConnectionRequestTimeout

      public void setConnectionRequestTimeout(int connectionRequestTimeout)
      基礎となる RequestConfig を使用して接続マネージャーから接続をリクエストするときに使用されるタイムアウトをミリ秒単位で設定します。タイムアウト値 0 は、無限のタイムアウトを指定します。

      カスタム HttpClientRequestConfig インスタンスを指定することにより、追加のプロパティを設定できます。

      パラメーター:
      connectionRequestTimeout - ミリ秒単位の接続をリクエストするタイムアウト値
      関連事項:
    • setConnectionRequestTimeout

      public void setConnectionRequestTimeout(DurationSE connectionRequestTimeout)
      基礎となる RequestConfig を使用して接続マネージャーから接続をリクエストするときに使用されるタイムアウトをミリ秒単位で設定します。タイムアウト値 0 は、無限のタイムアウトを指定します。

      カスタム HttpClientRequestConfig インスタンスを指定することにより、追加のプロパティを設定できます。

      パラメーター:
      connectionRequestTimeout - ミリ秒単位の接続をリクエストするタイムアウト値
      導入:
      6.1
      関連事項:
    • 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

      public ClientHttpRequest createRequest(URISE uri, HttpMethod httpMethod) throws IOExceptionSE
      インターフェースからコピーされた説明: ClientHttpRequestFactory
      指定された URI および HTTP メソッドの新しい ClientHttpRequest を作成します。

      返されたリクエストは、ClientHttpRequest.execute() を呼び出して書き込み、実行できます。

      次で指定:
      インターフェース ClientHttpRequestFactorycreateRequest 
      パラメーター:
      uri - リクエストを作成する URI
      httpMethod - 実行する HTTP メソッド
      戻り値:
      作成されたリクエスト
      例外:
      IOExceptionSE - I/O エラーの場合
    • createRequestConfig

      @Nullable protected RequestConfig createRequestConfig(ObjectSE client)
      指定されたクライアントで使用するデフォルト RequestConfig を作成します。null を返して、カスタムリクエスト構成を設定せず、HttpClient のデフォルトを使用する必要があることを示すことができます。

      デフォルトの実装は、クライアントのデフォルトを、このファクトリインスタンスのローカルカスタマイズ(存在する場合)とマージしようとします。

      パラメーター:
      client - チェックする HttpClient(または HttpAsyncClient
      戻り値:
      使用する実際の RequestConfig (null の場合があります)
      導入:
      4.2
      関連事項:
    • mergeRequestConfig

      protected RequestConfig mergeRequestConfig(RequestConfig clientConfig)
      必要に応じて、指定された HttpClient -level RequestConfig をファクトリレベルの構成とマージします。
      パラメーター:
      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

      public void destroy() throws ExceptionSE
      基になる HttpClientConnectionManager の接続プールがあれば、それを閉じるシャットダウンフック。
      次で指定:
      インターフェース DisposableBeandestroy 
      例外:
      ExceptionSE - シャットダウンエラーの場合。例外はログに記録されますが、再スローされず、他の Bean もリソースを解放できます。