我试图在与其他服务器连接时重用 HttpClient 的会话/上下文(以使 HttpClient 使用相同的连接)。为此,我使用了一个池连接管理器,每次我使用这个连接管理器创建 HttpClient ......但它仍然使用不同的上下文/会话连接到另一台服务器。
这样做的正确方法是什么?
我试图在与其他服务器连接时重用 HttpClient 的会话/上下文(以使 HttpClient 使用相同的连接)。为此,我使用了一个池连接管理器,每次我使用这个连接管理器创建 HttpClient ......但它仍然使用不同的上下文/会话连接到另一台服务器。
这样做的正确方法是什么?
我相信您混淆了连接持久性和 HTTP 状态/会话管理。HTTP 会话可以跨越多个连接。通常与持久连接无关。您想要的是重新使用 CookieStore 以及它包含的所有 cookie,用于所有逻辑相关的 HTTP 交换。有关更多详细信息,请参阅 HttpClient 教程的这一部分http://hc.apache.org/httpcomponents-client-ga/tutorial/html/statemgmt.html#d5e849