Class Httpd.Builder

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

public static class Httpd.Builder extends Object
  • Constructor Details

    • Builder

      public Builder()
  • Method Details

    • callTimeout

      public Httpd.Builder callTimeout(long timeout, TimeUnit unit)
      设置完成调用的默认超时。值0表示没有超时,否则在转换为毫秒时,值必须在1和Integer.MAX_VALUE之间
      Parameters:
      timeout - 超时时间
      unit - 计算单位
      Returns:
      构造器
    • callTimeout

      public Httpd.Builder callTimeout(Duration duration)
      设置完成调用的默认超时。值0表示没有超时,否则在转换为毫秒时,值必须在1和Integer.MAX_VALUE之间
      Parameters:
      duration - 持续时间
      Returns:
      构造器
    • connectTimeout

      public Httpd.Builder connectTimeout(long timeout, TimeUnit unit)
      设置新连接的默认连接超时。值0表示没有超时,否则在转换为毫秒时,值必须在1和Integer.MAX_VALUE之间
      Parameters:
      timeout - 超时时间
      unit - 计算单位
      Returns:
      构造器
    • connectTimeout

      public Httpd.Builder connectTimeout(Duration duration)
      设置新连接的默认连接超时。值0表示没有超时,否则在转换为毫秒时,值必须在1和Integer.MAX_VALUE之间
      Parameters:
      duration - 持续时间
      Returns:
      构造器
    • readTimeout

      public Httpd.Builder readTimeout(long timeout, TimeUnit unit)
      设置新连接的默认读取超时。值0表示没有超时,否则在转换为毫秒时,值必须在1和Integer.MAX_VALUE之间
      Parameters:
      timeout - 超时时间
      unit - 计算单位
      Returns:
      构造器
      See Also:
    • readTimeout

      public Httpd.Builder readTimeout(Duration duration)
      设置新连接的默认读取超时。值0表示没有超时,否则在转换为毫秒时,值必须在1和Integer.MAX_VALUE之间
      Parameters:
      duration - 持续时间
      Returns:
      构造器
      See Also:
    • writeTimeout

      public Httpd.Builder writeTimeout(long timeout, TimeUnit unit)
      设置新连接的默认写超时。值0表示没有超时,否则在转换为毫秒时,值必须在1和Integer.MAX_VALUE之间
      Parameters:
      timeout - 超时时间
      unit - 计算单位
      Returns:
      构造器
      See Also:
      • Sink.timeout()
    • writeTimeout

      public Httpd.Builder writeTimeout(Duration duration)
      设置新连接的默认写超时。值0表示没有超时,否则在转换为毫秒时,值必须在1和Integer.MAX_VALUE之间
      Parameters:
      duration - 持续时间
      Returns:
      构造器
      See Also:
      • Sink.timeout()
    • pingInterval

      public Httpd.Builder pingInterval(long interval, TimeUnit unit)
      设置此客户端发起的HTTP/2和web套接字ping之间的间隔。使用此命令可自动发送ping帧,直到连接失败或关闭 这将保持连接处于活动状态,并可能检测到连接失败.
      Parameters:
      interval - 间隔时间
      unit - 计算单位
      Returns:
      构造器
    • pingInterval

      public Httpd.Builder pingInterval(Duration duration)
      设置此客户端发起的HTTP/2和web套接字ping之间的间隔。使用此命令可自动发送ping帧, 直到连接失败或关闭。这将保持连接处于活动状态,并可能检测到连接失败.
      Parameters:
      duration - 持续时间
      Returns:
      构造器
    • proxy

      public Httpd.Builder proxy(Proxy proxy)
      设置此客户端创建的连接将使用的HTTP代理。它优先于proxySelector, 后者仅在此代理为空(默认为空)时才被启用。要完全禁用代理使用,请调用proxy(proxy . no_proxy)
      Parameters:
      proxy - 代理
      Returns:
      构造器
    • proxySelector

      public Httpd.Builder proxySelector(ProxySelector proxySelector)
      如果没有显式指定proxy,则设置要使用的代理选择策略。代理选择器可以返回多个代理;在这种情况下, 将依次对它们进行测试,直到建立成功的连接.
      Parameters:
      proxySelector - 代理选择器
      Returns:
      构造器
    • cookieJar

      public Httpd.Builder cookieJar(CookieJar cookieJar)
      设置可以接受来自传入HTTP响应的cookie并向传出HTTP请求提供cookie的处理程序.
      Parameters:
      cookieJar - cookie策略
      Returns:
      构造器
    • cache

      public Httpd.Builder cache(Cache cache)
      设置用于读写缓存的响应的响应缓存.
      Parameters:
      cache - 缓存支持
      Returns:
      构造器
    • dns

      public Httpd.Builder dns(DnsX dns)
      设置用于查找主机名的IP地址的DNS服务. 如果未设置,将使用system-wide defaultDNS
      Parameters:
      dns - DNS服务
      Returns:
      构造器
    • socketFactory

      public Httpd.Builder socketFactory(SocketFactory socketFactory)
      设置用于创建连接的套接字工厂。Httpd只使用无参数的SocketFactory.createSocket() 方法来创建未连接的套接字。重写这个方法,例如。,允许将套接字绑定到特定的本地地址 如果未设置,将使用system-wide defaultsocket工厂
      Parameters:
      socketFactory - socket工厂
      Returns:
      构造器
    • sslSocketFactory

      public Httpd.Builder sslSocketFactory(SSLSocketFactory sslSocketFactory)
      设置用于保护HTTPS连接的套接字工厂。如果未设置,则使用系统默认值
      Parameters:
      sslSocketFactory - socket工厂
      Returns:
      构造器
    • 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 socket工厂
      trustManager - X509证书身份验证
      Returns:
      构造器
    • hostnameVerifier

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

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

      public Httpd.Builder authenticator(Authenticator authenticator)
      设置用于响应来自源服务器的挑战的验证器。使用proxyAuthenticator设置代理服务器的身份验证器.
      Parameters:
      authenticator - 验证器
      Returns:
      构造器
    • proxyAuthenticator

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

      public Httpd.Builder connectionPool(ConnectionPool connectionPool)
      设置用于回收HTTP和HTTPS连接的连接池. 如果未设置,将使用新的连接池
      Parameters:
      connectionPool - 连接池信息
      Returns:
      构造器
    • followSslRedirects

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

      public Httpd.Builder followRedirects(boolean followRedirects)
      此客户端配置为遵循重定向。如果未设置,将遵循重定向.
      Parameters:
      followRedirects - 重定向
      Returns:
      构造器
    • retryOnConnectionFailure

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

      public Httpd.Builder dispatcher(Dispatcher dispatcher)
      设置用于设置策略和执行异步请求的调度程序。不能为空.
      Parameters:
      dispatcher - 调度程序分配器
      Returns:
      构造器
    • protocols

      public Httpd.Builder protocols(List<org.miaixz.bus.core.net.Protocol> protocols)
      配置此客户端使用的协议以与远程服务器通信。默认情况下,该客户机将选择最有效的传输方式 退回到更普遍的协议。应用程序应该只调用这个方法来避免特定的兼容性问题,比如在启用HTTP/2时web服务器的行为不正确.
      Parameters:
      protocols - 使用的协议,按优先顺序排列。如果列表包含Protocol.H2_PRIOR_KNOWLEDGE, 那么它必须是唯一的协议,并且不支持HTTPS url。否则列表必须包含Protocol.HTTP_1_1。 该列表不能包含null或Protocol.HTTP_1_0.
      Returns:
      构造器
    • connectionSpecs

      public Httpd.Builder connectionSpecs(List<ConnectionSuite> connectionSuites)
    • interceptors

      public List<Interceptor> interceptors()
      返回一个可修改的拦截器列表,该列表观察每个调用的完整跨度: 从建立连接之前(如果有的话)到选择响应源之后(源服务器、缓存或两者都有).
      Returns:
      构造器
    • addInterceptor

      public Httpd.Builder addInterceptor(Interceptor interceptor)
    • networkInterceptors

      public List<Interceptor> networkInterceptors()
      返回观察单个网络请求和响应的可修改的拦截器列表。 这些拦截器必须调用NewChain.proceed(org.miaixz.bus.http.Request) 只执行一次:网络拦截器短路或重复网络请求是错误的
      Returns:
      构造器
    • addNetworkInterceptor

      public Httpd.Builder addNetworkInterceptor(Interceptor interceptor)
    • eventListener

      public Httpd.Builder eventListener(EventListener eventListener)
      配置单个客户机作用域侦听器,该侦听器将接收此客户机的所有分析事件.
      Parameters:
      eventListener - 监听器
      Returns:
      构造器
    • eventListenerFactory

      public Httpd.Builder eventListenerFactory(EventListener.Factory eventListenerFactory)
      配置工厂以提供每个调用范围的侦听器,这些侦听器将接收此客户机的分析事件
      Parameters:
      eventListenerFactory - 监听工厂信息
      Returns:
      构造器
    • build

      public Httpd build()