java.lang.Object
org.miaixz.bus.http.Httpd.Builder
- Enclosing class:
Httpd
Httpd 配置构建器,用于创建和配置 Httpd 实例。
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionaddInterceptor(Interceptor interceptor) 添加拦截器。addNetworkInterceptor(Interceptor interceptor) 添加网络拦截器。authenticator(Authenticator authenticator) 设置用于响应来自源服务器的挑战的验证器。build()构建 Httpd 实例。设置缓存实例。callTimeout(long timeout, TimeUnit unit) 设置完成调用的默认超时。callTimeout(Duration duration) 设置完成调用的默认超时。certificatePinner(CertificatePinner certificatePinner) 设置限制哪些证书受信任的证书pinner。connectionPool(ConnectionPool connectionPool) 设置用于回收HTTP和HTTPS连接的连接池.connectionSpecs(List<ConnectionSuite> connectionSuites) 设置支持的连接套件。connectTimeout(long timeout, TimeUnit unit) 设置新连接的默认连接超时。connectTimeout(Duration duration) 设置新连接的默认连接超时。设置 Cookie 管理器。dispatcher(Dispatcher dispatcher) 设置请求调度器。设置 DNS 服务。eventListener(EventListener eventListener) 设置事件监听器。eventListenerFactory(EventListener.Factory eventListenerFactory) 设置事件监听器工厂。followRedirects(boolean followRedirects) 此客户端配置为遵循重定向。followSslRedirects(boolean followProtocolRedirects) 让这个客户从HTTPS到HTTPS跟踪和从HTTPS到HTTPS.hostnameVerifier(HostnameVerifier hostnameVerifier) 设置用于确认响应证书适用于HTTPS连接请求的主机名的验证程序.获取拦截器列表。获取网络拦截器列表。pingInterval(long interval, TimeUnit unit) 设置 WebSocket ping 间隔。pingInterval(Duration duration) 设置 WebSocket ping 间隔。设置支持的协议。设置 HTTP 代理。proxyAuthenticator(Authenticator proxyAuthenticator) 设置用于响应来自代理服务器的挑战的验证器。proxySelector(ProxySelector proxySelector) 设置代理选择器。readTimeout(long timeout, TimeUnit unit) 设置新连接的默认读取超时。readTimeout(Duration duration) 设置新连接的默认读取超时。retryOnConnectionFailure(boolean retryOnConnectionFailure) 在遇到连接问题时,将此客户端配置为重试或不重试 将此设置为false,以避免在这样做会造成破坏时重试请求 在这种情况下,调用应用程序应该自己恢复连接故障.socketFactory(SocketFactory socketFactory) 设置套接字工厂。sslSocketFactory(SSLSocketFactory sslSocketFactory) 设置 SSL 套接字工厂。sslSocketFactory(SSLSocketFactory sslSocketFactory, X509TrustManager trustManager) 设置用于保护HTTPS连接的套接字工厂和信任管理器。writeTimeout(long timeout, TimeUnit unit) 设置写入超时时间。writeTimeout(Duration duration) 设置写入超时时间。
-
Constructor Details
-
Builder
public Builder()默认构造函数,初始化默认配置。
-
-
Method Details
-
callTimeout
设置完成调用的默认超时。值0表示没有超时,否则在转换为毫秒时,值必须在1和Integer.MAX_VALUE之间- Parameters:
timeout- 超时时间(0 表示无超时)unit- 时间单位- Returns:
- 当前 Builder 实例
- Throws:
IllegalArgumentException- 如果超时值无效
-
callTimeout
设置完成调用的默认超时。值0表示没有超时,否则在转换为毫秒时,值必须在1和Integer.MAX_VALUE之间- Parameters:
duration- 超时时间(0 表示无超时)- Returns:
- 当前 Builder 实例
- Throws:
IllegalArgumentException- 如果超时值无效
-
connectTimeout
设置新连接的默认连接超时。值0表示没有超时,否则在转换为毫秒时,值必须在1和Integer.MAX_VALUE之间- Parameters:
timeout- 超时时间(0 表示无超时)unit- 时间单位- Returns:
- 当前 Builder 实例
- Throws:
IllegalArgumentException- 如果超时值无效
-
connectTimeout
设置新连接的默认连接超时。值0表示没有超时,否则在转换为毫秒时,值必须在1和Integer.MAX_VALUE之间- Parameters:
duration- 超时时间(0 表示无超时)- Returns:
- 当前 Builder 实例
- Throws:
IllegalArgumentException- 如果超时值无效
-
readTimeout
设置新连接的默认读取超时。值0表示没有超时,否则在转换为毫秒时,值必须在1和Integer.MAX_VALUE之间- Parameters:
timeout- 超时时间(0 表示无超时)unit- 时间单位- Returns:
- 当前 Builder 实例
- Throws:
IllegalArgumentException- 如果超时值无效- See Also:
-
readTimeout
设置新连接的默认读取超时。值0表示没有超时,否则在转换为毫秒时,值必须在1和Integer.MAX_VALUE之间- Parameters:
duration- 超时时间(0 表示无超时)- Returns:
- 当前 Builder 实例
- Throws:
IllegalArgumentException- 如果超时值无效- See Also:
-
writeTimeout
设置写入超时时间。- Parameters:
timeout- 超时时间(0 表示无超时)unit- 时间单位- Returns:
- 当前 Builder 实例
- Throws:
IllegalArgumentException- 如果超时值无效- See Also:
-
writeTimeout
设置写入超时时间。- Parameters:
duration- 超时时间(0 表示无超时)- Returns:
- 当前 Builder 实例
- Throws:
IllegalArgumentException- 如果超时值无效- See Also:
-
pingInterval
设置 WebSocket ping 间隔。- Parameters:
interval- 间隔时间(0 表示无 ping)unit- 时间单位- Returns:
- 当前 Builder 实例
- Throws:
IllegalArgumentException- 如果间隔值无效
-
pingInterval
设置 WebSocket ping 间隔。- Parameters:
duration- 间隔时间(0 表示无 ping)- Returns:
- 当前 Builder 实例
- Throws:
IllegalArgumentException- 如果间隔值无效
-
proxy
设置 HTTP 代理。- Parameters:
proxy- 代理实例- Returns:
- 当前 Builder 实例
-
proxySelector
设置代理选择器。- Parameters:
proxySelector- 代理选择器- Returns:
- 当前 Builder 实例
- Throws:
NullPointerException- 如果 proxySelector 为 null
-
cookieJar
设置 Cookie 管理器。- Parameters:
cookieJar- Cookie 管理器- Returns:
- 当前 Builder 实例
- Throws:
NullPointerException- 如果 cookieJar 为 null
-
cache
设置缓存实例。- Parameters:
cache- 缓存实例- Returns:
- 当前 Builder 实例
-
dns
设置 DNS 服务。- Parameters:
dns- DNS 服务- Returns:
- 当前 Builder 实例
- Throws:
NullPointerException- 如果 dns 为 null
-
socketFactory
设置套接字工厂。- Parameters:
socketFactory- 套接字工厂- Returns:
- 当前 Builder 实例
- Throws:
NullPointerException- 如果 socketFactory 为 nullIllegalArgumentException- 如果 socketFactory 是 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
设置用于确认响应证书适用于HTTPS连接请求的主机名的验证程序. 如果未设置,将使用默认的主机名验证器- Parameters:
hostnameVerifier- 主机名验证器- Returns:
- 当前 Builder 实例
- Throws:
NullPointerException- 如果 hostnameVerifier 为 null
-
certificatePinner
设置限制哪些证书受信任的证书pinner。默认情况下,HTTPS连接仅 依赖于SSL套接字工厂来建立信任。 固定证书避免了信任证书颁发机构的需要。- Parameters:
certificatePinner- 证书固定器- Returns:
- 当前 Builder 实例
- Throws:
NullPointerException- 如果 certificatePinner 为 null
-
authenticator
设置用于响应来自源服务器的挑战的验证器。使用proxyAuthenticator设置代理服务器的身份验证器.- Parameters:
authenticator- 身份验证器- Returns:
- 当前 Builder 实例
- Throws:
NullPointerException- 如果 authenticator 为 null
-
proxyAuthenticator
设置用于响应来自代理服务器的挑战的验证器。使用authenticator设置源服务器的身份验证器 果未设置,将尝试no authentication will be attempted- Parameters:
proxyAuthenticator- 代理身份验证器- Returns:
- 当前 Builder 实例
- Throws:
NullPointerException- 如果 proxyAuthenticator 为 null
-
connectionPool
设置用于回收HTTP和HTTPS连接的连接池. 如果未设置,将使用新的连接池- Parameters:
connectionPool- 连接池- Returns:
- 当前 Builder 实例
- Throws:
NullPointerException- 如果 connectionPool 为 null
-
followSslRedirects
让这个客户从HTTPS到HTTPS跟踪和从HTTPS到HTTPS. 如果未设置,将遵循协议重定向。这与内置的HttpURLConnection的默认设置不同- Parameters:
followProtocolRedirects- 是否跟随 SSL 重定向- Returns:
- 当前 Builder 实例
-
followRedirects
此客户端配置为遵循重定向。如果未设置,将遵循重定向.- Parameters:
followRedirects- 是否跟随 HTTP 重定向- Returns:
- 当前 Builder 实例
-
retryOnConnectionFailure
在遇到连接问题时,将此客户端配置为重试或不重试 将此设置为false,以避免在这样做会造成破坏时重试请求 在这种情况下,调用应用程序应该自己恢复连接故障.- Parameters:
retryOnConnectionFailure- 是否重试- Returns:
- 当前 Builder 实例
-
dispatcher
设置请求调度器。- Parameters:
dispatcher- 请求调度器- Returns:
- 当前 Builder 实例
- Throws:
IllegalArgumentException- 如果 dispatcher 为 null
-
protocols
设置支持的协议。- Parameters:
protocols- 协议列表- Returns:
- 当前 Builder 实例
- Throws:
IllegalArgumentException- 如果协议列表无效
-
connectionSpecs
设置支持的连接套件。- Parameters:
connectionSuites- 连接套件列表- Returns:
- 当前 Builder 实例
-
interceptors
获取拦截器列表。- Returns:
- 可修改的拦截器列表
-
addInterceptor
添加拦截器。- Parameters:
interceptor- 拦截器- Returns:
- 当前 Builder 实例
- Throws:
IllegalArgumentException- 如果 interceptor 为 null
-
networkInterceptors
获取网络拦截器列表。- Returns:
- 可修改的网络拦截器列表
-
addNetworkInterceptor
添加网络拦截器。- Parameters:
interceptor- 网络拦截器- Returns:
- 当前 Builder 实例
- Throws:
IllegalArgumentException- 如果 interceptor 为 null
-
eventListener
设置事件监听器。- Parameters:
eventListener- 事件监听器- Returns:
- 当前 Builder 实例
- Throws:
NullPointerException- 如果 eventListener 为 null
-
eventListenerFactory
设置事件监听器工厂。- Parameters:
eventListenerFactory- 事件监听器工厂- Returns:
- 当前 Builder 实例
- Throws:
NullPointerException- 如果 eventListenerFactory 为 null
-
build
构建 Httpd 实例。- Returns:
- Httpd 实例
-