【问题标题】:What is the right way to use HttpClientConnectionManager with CloseableHttpClient in Apache?在 Apache 中使用 HttpClientConnectionManager 和 CloseableHttpClient 的正确方法是什么?
【发布时间】:2021-01-21 16:04:41
【问题描述】:

上下文

我有一个org.apache.hc.client5.http.impl.classic.CloseableHttpClient 的实例 和一个 org.apache.hc.client5.http.io.HttpClientConnectionManager 的单例实例来与一些远程 API 通信。

我创建了一个单独的 HTTP 连接池来创建 HTTP 客户端的实例。

HttpClientConnectionManager的正确使用方法是什么?

我真的应该使用 try-with-resource(或旧式 try-finally)来处理 CloseableHttpClient 吗?

如果我关闭 HTTP 客户端,也会关闭来自该池的连接。然后我不能使用这个池与远程 API 通信。

当然,我已经阅读了文档https://hc.apache.org/httpcomponents-client-ga/tutorial/html/connmgmt.html

也许我错过了什么。谁能解释一下?

【问题讨论】:

    标签: java httpclient apache-httpcomponents


    【解决方案1】:

    您还应该将CloseableHttpClient 用作单例(基于每个不同的服务)。

    如果您想继续使用相同的HttpClientConnectionManager 创建CloseableHttpClient 的短期实例,请确保在使用HttpClientBuilder 创建CloseableHttpClient 实例时将其标记为共享。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-01
    • 2019-05-17
    • 2014-12-08
    • 1970-01-01
    • 2023-03-15
    • 2011-11-11
    • 2015-03-01
    • 1970-01-01
    相关资源
    最近更新 更多