检测 OkHttpClient
Instrumenting OkHttpClient
我正在编写一个小型包装器库,它允许我使用 Dropwizard Metrics 监控 OkHttpClient 的内部结构:https://github.com/raskasa/metrics-okhttp.
我在正确检测 ConnectionPool
时遇到了一些问题 - 具体来说,定期调用 getConnectionCount()
来监视打开的 TCP 连接数。
最初创建 OkHttpClient
的实例时,getConnectionPool()
为 null - 这是我所期望的。而且,即使 during/after 执行一些网络请求,后续访问池的尝试仍然 return 为空。
我假设有适当的方法来监控 ConnectionPool
,因为它是 public API 的一部分,但我只是在时刻.
所以:
- 有没有办法在
OkHttpClient.getConnectionPool()
不是 null
的地方访问 ConnectionPool
?
- 如果这不是最好的方法,有什么更好的建议吗?
试试这个:
OkHttpClient client = ...
client.setConnectionPool(ConnectionPool.getDefault());
这将为您提供无论如何都会获得的相同连接池,但它会更快地提供给您。
我正在编写一个小型包装器库,它允许我使用 Dropwizard Metrics 监控 OkHttpClient 的内部结构:https://github.com/raskasa/metrics-okhttp.
我在正确检测 ConnectionPool
时遇到了一些问题 - 具体来说,定期调用 getConnectionCount()
来监视打开的 TCP 连接数。
最初创建 OkHttpClient
的实例时,getConnectionPool()
为 null - 这是我所期望的。而且,即使 during/after 执行一些网络请求,后续访问池的尝试仍然 return 为空。
我假设有适当的方法来监控 ConnectionPool
,因为它是 public API 的一部分,但我只是在时刻.
所以:
- 有没有办法在
OkHttpClient.getConnectionPool()
不是null
的地方访问ConnectionPool
? - 如果这不是最好的方法,有什么更好的建议吗?
试试这个:
OkHttpClient client = ...
client.setConnectionPool(ConnectionPool.getDefault());
这将为您提供无论如何都会获得的相同连接池,但它会更快地提供给您。