【问题标题】:What is a good way to share a session between two HTTPClients in a Java program?在 Java 程序中的两个 HTTPClient 之间共享会话的好方法是什么?
【发布时间】:2012-08-19 07:10:09
【问题描述】:
我一直在开发一个可以同时打开两个 Apache HTTP 连接的 Android/Java 应用程序。我一直在开发一个聊天应用程序,一个连接几乎总是在运行(服务器长时间轮询;它只会在进行更改后响应),第二个请求使用相同的会话将数据发送到同一站点(由于需要“登录”)。
在 StackOverflow 上进行了大量搜索后,我还没有找到一个好的方法来做到这一点。这如何实现?
【问题讨论】:
标签:
java
android
session
session-cookies
apache-httpclient-4.x
【解决方案1】:
以下示例从头开始创建一个 HTTPClient。然后它从另一个客户端中提取 cookie,并将其添加到自己的客户端中。我发现这在 Android 中运行良好。
DefaultHttpClient sendClient = new DefaultHttpClient();
CookieStore originalCookies = Globals.getClient().getCookieStore();
sendClient.setCookieStore(originalCookies);