Module bus.http

Class Httpd

java.lang.Object
org.miaixz.bus.http.Httpd
All Implemented Interfaces:
Cloneable, NewCall.Factory, WebSocket.Factory

public class Httpd extends Object implements Cloneable, NewCall.Factory, WebSocket.Factory
HTTP 请求核心客户端,负责发送 HTTP 请求并读取响应。 通过连接池和线程池优化性能,支持 HTTP/2 和 WebSocket 连接。 建议复用单一 Httpd 实例以减少资源开销。
Since:
Java 17+
Author:
Kimi Liu
  • Constructor Details

    • Httpd

      public Httpd()
      默认构造函数,使用默认配置创建 Httpd 实例。
    • Httpd

      public Httpd(Httpd.Builder builder)
      构造函数,根据提供的 Builder 配置创建 Httpd 实例。
      Parameters:
      builder - Builder 实例,包含所有配置参数
  • Method Details

    • newCall

      public NewCall newCall(Request request)
      创建新的 HTTP 调用,用于执行指定的请求。
      Specified by:
      newCall in interface NewCall.Factory
      Parameters:
      request - HTTP 请求对象
      Returns:
      NewCall 实例,用于执行请求
    • newWebSocket

      public WebSocket newWebSocket(Request request, WebSocketListener listener)
      创建新的 WebSocket 连接。
      Specified by:
      newWebSocket in interface WebSocket.Factory
      Parameters:
      request - WebSocket 请求对象
      listener - WebSocket 事件监听器
      Returns:
      WebSocket 实例
    • callTimeoutMillis

      public int callTimeoutMillis()
      获取调用超时时间(毫秒)。
      Returns:
      调用超时时间
    • connectTimeoutMillis

      public int connectTimeoutMillis()
      获取连接超时时间(毫秒)。
      Returns:
      连接超时时间
    • readTimeoutMillis

      public int readTimeoutMillis()
      获取读取超时时间(毫秒)。
      Returns:
      读取超时时间
    • writeTimeoutMillis

      public int writeTimeoutMillis()
      获取写入超时时间(毫秒)。
      Returns:
      写入超时时间
    • pingIntervalMillis

      public int pingIntervalMillis()
      获取 WebSocket ping 间隔(毫秒)。
      Returns:
      ping 间隔
    • proxy

      public Proxy proxy()
      获取配置的代理。
      Returns:
      代理实例,可能为 null
    • proxySelector

      public ProxySelector proxySelector()
      获取代理选择器。
      Returns:
      代理选择器
    • cookieJar

      public CookieJar cookieJar()
      获取 Cookie 管理器。
      Returns:
      CookieJar 实例
    • cache

      public Cache cache()
      获取缓存实例。
      Returns:
      Cache 实例,可能为 null
    • dns

      public DnsX dns()
      获取 DNS 服务。
      Returns:
      DnsX 实例
    • socketFactory

      public SocketFactory socketFactory()
      获取套接字工厂。
      Returns:
      SocketFactory 实例
    • sslSocketFactory

      public SSLSocketFactory sslSocketFactory()
      获取 SSL 套接字工厂。
      Returns:
      SSLSocketFactory 实例
    • hostnameVerifier

      public HostnameVerifier hostnameVerifier()
      获取主机名验证器。
      Returns:
      HostnameVerifier 实例
    • certificatePinner

      public CertificatePinner certificatePinner()
      获取证书固定器。
      Returns:
      CertificatePinner 实例
    • authenticator

      public Authenticator authenticator()
      获取服务器身份验证器。
      Returns:
      Authenticator 实例
    • proxyAuthenticator

      public Authenticator proxyAuthenticator()
      获取代理身份验证器。
      Returns:
      Authenticator 实例
    • connectionPool

      public ConnectionPool connectionPool()
      获取连接池。
      Returns:
      ConnectionPool 实例
    • followSslRedirects

      public boolean followSslRedirects()
      检查是否跟随 SSL 重定向。
      Returns:
      true 如果跟随 SSL 重定向
    • followRedirects

      public boolean followRedirects()
      检查是否跟随 HTTP 重定向。
      Returns:
      true 如果跟随 HTTP 重定向
    • retryOnConnectionFailure

      public boolean retryOnConnectionFailure()
      检查是否在连接失败时重试。
      Returns:
      true 如果启用重试
    • dispatcher

      public Dispatcher dispatcher()
      获取请求调度器。
      Returns:
      Dispatcher 实例
    • protocols

      public List<org.miaixz.bus.core.net.Protocol> protocols()
      获取支持的协议列表。
      Returns:
      不可修改的协议列表
    • connectionSpecs

      public List<ConnectionSuite> connectionSpecs()
      获取支持的连接套件列表。
      Returns:
      不可修改的连接套件列表
    • interceptors

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

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

      public EventListener.Factory eventListenerFactory()
      获取事件监听器工厂。
      Returns:
      EventListener.Factory 实例
    • newBuilder

      public Httpd.Builder newBuilder()
      创建新的 Builder 实例,基于当前 Httpd 配置。
      Returns:
      Builder 实例