Package org.miaixz.bus.http.metric
Class EventListener
java.lang.Object
org.miaixz.bus.http.metric.EventListener
用于度量事件的侦听器。扩展这个类来监视应用程序的HTTP调用的数量、大小和持续时间 所有事件方法必须快速执行,不需要外部锁定,不能抛出异常,不能尝试更改事件参数, 也不能重入客户机。任何对文件或网络的IO写入都应该异步进行
- Since:
- Java 17+
- Author:
- Kimi Liu
-
Nested Class Summary
Nested Classes -
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid在调用完全结束后立即调用。voidcallFailed(NewCall call, IOException ioe) 永久失败时调用.void在调用进入队列或由客户端执行时立即调用。voidconnectEnd(NewCall call, InetSocketAddress inetSocketAddress, Proxy proxy, org.miaixz.bus.core.net.Protocol protocol) 在尝试套接字连接后立即调用.voidconnectFailed(NewCall call, InetSocketAddress inetSocketAddress, Proxy proxy, org.miaixz.bus.core.net.Protocol protocol, IOException ioe) 连接尝试失败时调用。voidconnectionAcquired(NewCall call, Connection connection) 为call获取连接后调用.voidconnectionReleased(NewCall call, Connection connection) 在为call释放连接后调用.voidconnectStart(NewCall call, InetSocketAddress inetSocketAddress, Proxy proxy) 仅在初始化套接字连接之前调用.voiddnsEnd(NewCall call, String domainName, List<InetAddress> inetAddressList) 在DNS查找后立即调用.void仅在DNS查找之前调用。static EventListener.Factoryfactory(EventListener listener) voidrequestBodyEnd(NewCall call, long byteCount) 在发送请求主体后立即调用 此方法总是在requestBodyStart(NewCall)之后调用voidrequestBodyStart(NewCall call) 仅在发送请求主体之前调用。voidrequestFailed(NewCall call, IOException ioe) voidrequestHeadersEnd(NewCall call, Request request) 发送请求头后立即调用.voidrequestHeadersStart(NewCall call) 仅在发送请求头之前调用.voidresponseBodyEnd(NewCall call, long byteCount) 在接收到响应体并完成读取后立即调用.voidresponseBodyStart(NewCall call) 仅在接收响应主体之前调用.voidresponseFailed(NewCall call, IOException ioe) voidresponseHeadersEnd(NewCall call, Response response) 在接收响应标头后立即调用 这个方法总是在responseHeadersStart(org.miaixz.bus.http.NewCall)之后调用voidresponseHeadersStart(NewCall call) 仅在接收响应标头之前调用.voidsecureConnectEnd(NewCall call, Handshake handshake) 尝试TLS连接后立即调用.voidsecureConnectStart(NewCall call) 在启动TLS连接之前调用.
-
Field Details
-
NONE
-
-
Constructor Details
-
EventListener
public EventListener()
-
-
Method Details
-
factory
-
callStart
在调用进入队列或由客户端执行时立即调用。在线程或流限制的情况下,这个调用可能在处理请求 开始之前就已经执行了 对于单个NewCall只调用一次。不同路由或重定向的重试将在 单个callStart和callEnd(org.miaixz.bus.http.NewCall)/callFailed(org.miaixz.bus.http.NewCall, java.io.IOException)对的范围内处理。- Parameters:
call- 调用信息
-
dnsStart
仅在DNS查找之前调用。看到#查找(String)- Parameters:
call- 调用信息domainName- 主机名
-
dnsEnd
在DNS查找后立即调用. 此方法在dnsStart(org.miaixz.bus.http.NewCall, java.lang.String)之后调用- Parameters:
call- 调用信息domainName- 主机名inetAddressList- IP地址信息
-
connectStart
仅在初始化套接字连接之前调用. 如果不能重用ConnectionPool中的现有连接,则将调用此方法.- Parameters:
call- 调用信息inetSocketAddress- 网络套接字信息proxy- 代理
-
secureConnectStart
-
secureConnectEnd
尝试TLS连接后立即调用. 此方法在secureConnectStart(org.miaixz.bus.http.NewCall)之后调用.- Parameters:
call- 调用信息handshake- 网络握手信息
-
connectEnd
public void connectEnd(NewCall call, InetSocketAddress inetSocketAddress, Proxy proxy, org.miaixz.bus.core.net.Protocol protocol) 在尝试套接字连接后立即调用.- Parameters:
call- 调用信息inetSocketAddress- 网络套接字信息proxy- 代理protocol- 协议
-
connectFailed
public void connectFailed(NewCall call, InetSocketAddress inetSocketAddress, Proxy proxy, org.miaixz.bus.core.net.Protocol protocol, IOException ioe) 连接尝试失败时调用。如果有进一步的路由可用并且启用了故障恢复,则此故障不是终端.- Parameters:
call- 调用信息inetSocketAddress- 网络套接字信息proxy- 代理protocol- 协议ioe- 异常
-
connectionAcquired
为call获取连接后调用.- Parameters:
call- 调用信息connection- 连接信息
-
connectionReleased
在为call释放连接后调用. 这个方法总是在connectionAcquired(NewCall, Connection)之后调用。- Parameters:
call- 调用信息connection- 连接信息
-
requestHeadersStart
仅在发送请求头之前调用. 连接是隐式的,通常与最后一个connectionAcquired(NewCall, Connection)事件相关- Parameters:
call- 调用信息
-
requestHeadersEnd
发送请求头后立即调用. 这个方法总是在requestHeadersStart(NewCall)之后调用- Parameters:
call- 调用信息request- 通过网络发送的请求
-
requestBodyStart
仅在发送请求主体之前调用。只有在请求允许并有一个请求体要发送时才会被调用吗. 连接是隐式的,通常与最后一个connectionAcquired(NewCall, Connection)事件相关- Parameters:
call- 调用信息
-
requestBodyEnd
在发送请求主体后立即调用 此方法总是在requestBodyStart(NewCall)之后调用- Parameters:
call- 调用信息byteCount- 字节流长度信息
-
requestFailed
-
responseHeadersStart
仅在接收响应标头之前调用. 连接是隐式的,通常与最后一个connectionAcquired(NewCall, Connection)事件相关 对于单个NewCall可以调用多次。例如,如果对NewCall.request()的响应是重定向到另一个地址- Parameters:
call- 调用信息
-
responseHeadersEnd
在接收响应标头后立即调用 这个方法总是在responseHeadersStart(org.miaixz.bus.http.NewCall)之后调用- Parameters:
call- 调用信息response- 通过网络接收到的响应
-
responseBodyStart
仅在接收响应主体之前调用. 连接是隐式的,通常与最后一个connectionAcquired(NewCall, Connection)事件相关 对于单个NewCall通常只会调用一次,例外情况是一组有限的情况,包括故障恢复- Parameters:
call- 调用信息
-
responseBodyEnd
在接收到响应体并完成读取后立即调用. 只会在有响应体的请求时调用,例如,不会在websocket升级时调用 此方法总是在requestBodyStart(NewCall)之后调用- Parameters:
call- 调用信息byteCount- 字节流长度信息
-
responseFailed
-
callEnd
在调用完全结束后立即调用。这包括调用方延迟消耗响应体. 此方法总是在callStart(NewCall)之后调用- Parameters:
call- 调用信息
-
callFailed
永久失败时调用. 此方法总是在callStart(NewCall)之后调用- Parameters:
call- 调用信息ioe- 异常
-