Module bus.http

Class Httpd.Builder

java.lang.Object
org.miaixz.bus.http.Httpd.Builder
Enclosing class:
Httpd

public static class Httpd.Builder extends Object
Httpd 配置构建器,用于创建和配置 Httpd 实例。
  • Constructor Details

    • Builder

      public Builder()
      默认构造函数,初始化默认配置。
  • Method Details

    • callTimeout

      public Httpd.Builder callTimeout(long timeout, TimeUnit unit)
      设置完成调用的默认超时。值0表示没有超时,否则在转换为毫秒时,值必须在1和Integer.MAX_VALUE之间
      Parameters:
      timeout - 超时时间(0 表示无超时)
      unit - 时间单位
      Returns:
      当前 Builder 实例
      Throws:
      IllegalArgumentException - 如果超时值无效
    • callTimeout

      public Httpd.Builder callTimeout(Duration duration)
      设置完成调用的默认超时。值0表示没有超时,否则在转换为毫秒时,值必须在1和Integer.MAX_VALUE之间
      Parameters:
      duration - 超时时间(0 表示无超时)
      Returns:
      当前 Builder 实例
      Throws:
      IllegalArgumentException - 如果超时值无效
    • connectTimeout

      public Httpd.Builder connectTimeout(long timeout, TimeUnit unit)
      设置新连接的默认连接超时。值0表示没有超时,否则在转换为毫秒时,值必须在1和Integer.MAX_VALUE之间
      Parameters:
      timeout - 超时时间(0 表示无超时)
      unit - 时间单位
      Returns:
      当前 Builder 实例
      Throws:
      IllegalArgumentException - 如果超时值无效
    • connectTimeout

      public Httpd.Builder connectTimeout(Duration duration)
      设置新连接的默认连接超时。值0表示没有超时,否则在转换为毫秒时,值必须在1和Integer.MAX_VALUE之间
      Parameters:
      duration - 超时时间(0 表示无超时)
      Returns:
      当前 Builder 实例
      Throws:
      IllegalArgumentException - 如果超时值无效
    • readTimeout

      public Httpd.Builder readTimeout(long timeout, TimeUnit unit)
      设置新连接的默认读取超时。值0表示没有超时,否则在转换为毫秒时,值必须在1和Integer.MAX_VALUE之间
      Parameters:
      timeout - 超时时间(0 表示无超时)
      unit - 时间单位
      Returns:
      当前 Builder 实例
      Throws:
      IllegalArgumentException - 如果超时值无效
      See Also:
    • readTimeout

      public Httpd.Builder readTimeout(Duration duration)
      设置新连接的默认读取超时。值0表示没有超时,否则在转换为毫秒时,值必须在1和Integer.MAX_VALUE之间
      Parameters:
      duration - 超时时间(0 表示无超时)
      Returns:
      当前 Builder 实例
      Throws:
      IllegalArgumentException - 如果超时值无效
      See Also:
    • writeTimeout

      public Httpd.Builder writeTimeout(long timeout, TimeUnit unit)
      设置写入超时时间。
      Parameters:
      timeout - 超时时间(0 表示无超时)
      unit - 时间单位
      Returns:
      当前 Builder 实例
      Throws:
      IllegalArgumentException - 如果超时值无效
      See Also:
      • Sink.timeout()
    • writeTimeout

      public Httpd.Builder writeTimeout(Duration duration)
      设置写入超时时间。
      Parameters:
      duration - 超时时间(0 表示无超时)
      Returns:
      当前 Builder 实例
      Throws:
      IllegalArgumentException - 如果超时值无效
      See Also:
      • Sink.timeout()
    • pingInterval

      public Httpd.Builder pingInterval(long interval, TimeUnit unit)
      设置 WebSocket ping 间隔。
      Parameters:
      interval - 间隔时间(0 表示无 ping)
      unit - 时间单位
      Returns:
      当前 Builder 实例
      Throws:
      IllegalArgumentException - 如果间隔值无效
    • pingInterval

      public Httpd.Builder pingInterval(Duration duration)
      设置 WebSocket ping 间隔。
      Parameters:
      duration - 间隔时间(0 表示无 ping)
      Returns:
      当前 Builder 实例
      Throws:
      IllegalArgumentException - 如果间隔值无效
    • proxy

      public Httpd.Builder proxy(Proxy proxy)
      设置 HTTP 代理。
      Parameters:
      proxy - 代理实例
      Returns:
      当前 Builder 实例
    • proxySelector

      public Httpd.Builder proxySelector(ProxySelector proxySelector)
      设置代理选择器。
      Parameters:
      proxySelector - 代理选择器
      Returns:
      当前 Builder 实例
      Throws:
      NullPointerException - 如果 proxySelector 为 null
    • cookieJar

      public Httpd.Builder cookieJar(CookieJar cookieJar)
      设置 Cookie 管理器。
      Parameters:
      cookieJar - Cookie 管理器
      Returns:
      当前 Builder 实例
      Throws:
      NullPointerException - 如果 cookieJar 为 null
    • cache

      public Httpd.Builder cache(Cache cache)
      设置缓存实例。
      Parameters:
      cache - 缓存实例
      Returns:
      当前 Builder 实例
    • dns

      public Httpd.Builder dns(DnsX dns)
      设置 DNS 服务。
      Parameters:
      dns - DNS 服务
      Returns:
      当前 Builder 实例
      Throws:
      NullPointerException - 如果 dns 为 null
    • socketFactory

      public Httpd.Builder socketFactory(SocketFactory socketFactory)
      设置套接字工厂。
      Parameters:
      socketFactory - 套接字工厂
      Returns:
      当前 Builder 实例
      Throws:
      NullPointerException - 如果 socketFactory 为 null
      IllegalArgumentException - 如果 socketFactory 是 SSLSocketFactory
    • sslSocketFactory

      public Httpd.Builder sslSocketFactory(SSLSocketFactory sslSocketFactory)
      设置 SSL 套接字工厂。
      Parameters:
      sslSocketFactory - SSL 套接字工厂
      Returns:
      当前 Builder 实例
      Throws:
      NullPointerException - 如果 sslSocketFactory 为 null
    • sslSocketFactory

      public Httpd.Builder sslSocketFactory(SSLSocketFactory sslSocketFactory, X509TrustManager trustManager)
      设置用于保护HTTPS连接的套接字工厂和信任管理器。如果未设置,则使用系统默认值 大多数应用程序不应该调用这个方法,而应该使用系统默认值。这些类包含特殊的优化,如果实现被修饰,这些优化可能会丢失
       
      
       TrustManagerFactory trustManagerFactory = TrustManagerFactory
               .getInstance(TrustManagerFactory.getDefaultAlgorithm());
       trustManagerFactory.init((KeyStore) null);
       TrustManager[] trustManagers = trustManagerFactory.getTrustManagers();
       if (trustManagers.length != 1 || !(trustManagers[0] instanceof X509TrustManager)) {
           throw new IllegalStateException("Unexpected default trust managers:" + Arrays.toString(trustManagers));
       }
       X509TrustManager trustManager = (X509TrustManager) trustManagers[0];
      
       SSLContext sslContext = SSLContext.getInstance("TLS");
       sslContext.init(null, new TrustManager[] { trustManager }, null);
       SSLSocketFactory sslSocketFactory = sslContext.getSocketFactory();
      
       Httpd client = new Httpd.Builder().sslSocketFactory(sslSocketFactory, trustManager).build();
       
       
      Parameters:
      sslSocketFactory - SSL 套接字工厂
      trustManager - X509 信任管理器
      Returns:
      当前 Builder 实例
      Throws:
      NullPointerException - 如果 sslSocketFactory 或 trustManager 为 null
    • hostnameVerifier

      public Httpd.Builder hostnameVerifier(HostnameVerifier hostnameVerifier)
      设置用于确认响应证书适用于HTTPS连接请求的主机名的验证程序. 如果未设置,将使用默认的主机名验证器
      Parameters:
      hostnameVerifier - 主机名验证器
      Returns:
      当前 Builder 实例
      Throws:
      NullPointerException - 如果 hostnameVerifier 为 null
    • certificatePinner

      public Httpd.Builder certificatePinner(CertificatePinner certificatePinner)
      设置限制哪些证书受信任的证书pinner。默认情况下,HTTPS连接仅 依赖于SSL套接字工厂来建立信任。 固定证书避免了信任证书颁发机构的需要。
      Parameters:
      certificatePinner - 证书固定器
      Returns:
      当前 Builder 实例
      Throws:
      NullPointerException - 如果 certificatePinner 为 null
    • authenticator

      public Httpd.Builder authenticator(Authenticator authenticator)
      设置用于响应来自源服务器的挑战的验证器。使用proxyAuthenticator设置代理服务器的身份验证器.
      Parameters:
      authenticator - 身份验证器
      Returns:
      当前 Builder 实例
      Throws:
      NullPointerException - 如果 authenticator 为 null
    • proxyAuthenticator

      public Httpd.Builder proxyAuthenticator(Authenticator proxyAuthenticator)
      设置用于响应来自代理服务器的挑战的验证器。使用authenticator设置源服务器的身份验证器 果未设置,将尝试no authentication will be attempted
      Parameters:
      proxyAuthenticator - 代理身份验证器
      Returns:
      当前 Builder 实例
      Throws:
      NullPointerException - 如果 proxyAuthenticator 为 null
    • connectionPool

      public Httpd.Builder connectionPool(ConnectionPool connectionPool)
      设置用于回收HTTP和HTTPS连接的连接池. 如果未设置,将使用新的连接池
      Parameters:
      connectionPool - 连接池
      Returns:
      当前 Builder 实例
      Throws:
      NullPointerException - 如果 connectionPool 为 null
    • followSslRedirects

      public Httpd.Builder followSslRedirects(boolean followProtocolRedirects)
      让这个客户从HTTPS到HTTPS跟踪和从HTTPS到HTTPS. 如果未设置,将遵循协议重定向。这与内置的HttpURLConnection的默认设置不同
      Parameters:
      followProtocolRedirects - 是否跟随 SSL 重定向
      Returns:
      当前 Builder 实例
    • followRedirects

      public Httpd.Builder followRedirects(boolean followRedirects)
      此客户端配置为遵循重定向。如果未设置,将遵循重定向.
      Parameters:
      followRedirects - 是否跟随 HTTP 重定向
      Returns:
      当前 Builder 实例
    • retryOnConnectionFailure

      public Httpd.Builder retryOnConnectionFailure(boolean retryOnConnectionFailure)
      在遇到连接问题时,将此客户端配置为重试或不重试 将此设置为false,以避免在这样做会造成破坏时重试请求 在这种情况下,调用应用程序应该自己恢复连接故障.
      Parameters:
      retryOnConnectionFailure - 是否重试
      Returns:
      当前 Builder 实例
    • dispatcher

      public Httpd.Builder dispatcher(Dispatcher dispatcher)
      设置请求调度器。
      Parameters:
      dispatcher - 请求调度器
      Returns:
      当前 Builder 实例
      Throws:
      IllegalArgumentException - 如果 dispatcher 为 null
    • protocols

      public Httpd.Builder protocols(List<org.miaixz.bus.core.net.Protocol> protocols)
      设置支持的协议。
      Parameters:
      protocols - 协议列表
      Returns:
      当前 Builder 实例
      Throws:
      IllegalArgumentException - 如果协议列表无效
    • connectionSpecs

      public Httpd.Builder connectionSpecs(List<ConnectionSuite> connectionSuites)
      设置支持的连接套件。
      Parameters:
      connectionSuites - 连接套件列表
      Returns:
      当前 Builder 实例
    • interceptors

      public List<Interceptor> interceptors()
      获取拦截器列表。
      Returns:
      可修改的拦截器列表
    • addInterceptor

      public Httpd.Builder addInterceptor(Interceptor interceptor)
      添加拦截器。
      Parameters:
      interceptor - 拦截器
      Returns:
      当前 Builder 实例
      Throws:
      IllegalArgumentException - 如果 interceptor 为 null
    • networkInterceptors

      public List<Interceptor> networkInterceptors()
      获取网络拦截器列表。
      Returns:
      可修改的网络拦截器列表
    • addNetworkInterceptor

      public Httpd.Builder addNetworkInterceptor(Interceptor interceptor)
      添加网络拦截器。
      Parameters:
      interceptor - 网络拦截器
      Returns:
      当前 Builder 实例
      Throws:
      IllegalArgumentException - 如果 interceptor 为 null
    • eventListener

      public Httpd.Builder eventListener(EventListener eventListener)
      设置事件监听器。
      Parameters:
      eventListener - 事件监听器
      Returns:
      当前 Builder 实例
      Throws:
      NullPointerException - 如果 eventListener 为 null
    • eventListenerFactory

      public Httpd.Builder eventListenerFactory(EventListener.Factory eventListenerFactory)
      设置事件监听器工厂。
      Parameters:
      eventListenerFactory - 事件监听器工厂
      Returns:
      当前 Builder 实例
      Throws:
      NullPointerException - 如果 eventListenerFactory 为 null
    • build

      public Httpd build()
      构建 Httpd 实例。
      Returns:
      Httpd 实例