Class HttpClientConnectionManagerBuilder

java.lang.Object
io.leandev.appfuse.http.HttpClientConnectionManagerBuilder

public class HttpClientConnectionManagerBuilder extends Object

HTTP 連線管理器建構器。

提供流暢的 API 來建立 Apache HttpClient 5 的連線池管理器, 支援連線池大小、超時設定及 SSL 驗證配置。

使用範例:

PoolingHttpClientConnectionManager manager = HttpClientConnectionManagerBuilder.create()
    .setMaxTotal(200)
    .setDefaultMaxPerRoute(50)
    .setConnectTimeout(30, TimeUnit.SECONDS)
    .build();
See Also:
  • PoolingHttpClientConnectionManager
  • Constructor Details

    • HttpClientConnectionManagerBuilder

      public HttpClientConnectionManagerBuilder()
  • Method Details

    • create

      public static HttpClientConnectionManagerBuilder create()
      建立新的 HttpClientConnectionManagerBuilder 實例。
      Returns:
      新的建構器實例
    • setMaxTotal

      public HttpClientConnectionManagerBuilder setMaxTotal(int max)
      設定連線池的最大連線數。
      Parameters:
      max - 最大連線數(必須 > 0,預設為 100)
      Returns:
      Builder 實例
      Throws:
      IllegalArgumentException - 如果 max <= 0
    • setDefaultMaxPerRoute

      public HttpClientConnectionManagerBuilder setDefaultMaxPerRoute(int max)
      設定每個路由(目標主機)的預設最大連線數。
      Parameters:
      max - 每個路由的最大連線數(必須 > 0,預設為 20)
      Returns:
      Builder 實例
      Throws:
      IllegalArgumentException - 如果 max <= 0
    • setConnectTimeout

      public HttpClientConnectionManagerBuilder setConnectTimeout(int timeout, TimeUnit timeUnit)
      設定連線超時時間
      Parameters:
      timeout - 超時時間(必須 > 0)
      timeUnit - 時間單位(不可為 null)
      Returns:
      Builder 實例
      Throws:
      IllegalArgumentException - 如果 timeout <= 0 或 timeUnit 為 null
    • setSocketTimeout

      public HttpClientConnectionManagerBuilder setSocketTimeout(int timeout, TimeUnit timeUnit)
      設定 Socket 超時時間
      Parameters:
      timeout - 超時時間(必須 > 0)
      timeUnit - 時間單位(不可為 null)
      Returns:
      Builder 實例
      Throws:
      IllegalArgumentException - 如果 timeout <= 0 或 timeUnit 為 null
    • disableSSLVerification

      public HttpClientConnectionManagerBuilder disableSSLVerification()

      停用 SSL 憑證驗證

      ⚠️ 警告:僅用於開發和測試環境 ⚠️ 生產環境使用會有安全風險(容易受到中間人攻擊) ⚠️ 此設定會接受所有 SSL 憑證,包含自簽憑證和過期憑證

      Returns:
      Builder 實例
    • build

      public org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager build()
      根據目前的配置建立連線池管理器。
      Returns:
      配置完成的 PoolingHttpClientConnectionManager 實例
      Throws:
      HttpClientException - 如果建立 SSL 上下文失敗