我已经搜索了很多关于如何在多线程中使用HttpClient的问题。大多数人建议使用ThreadSafeClientConnManager。 但我的应用程序必须登录某个主机(登录表单页面),以便HttpClient获得基础状态连接。 如果多线程,ThreadSafeClientConnManager是否可以保持登录状态?如何在底层连接有状态时使用Apache HttpClient?
2
A
回答
0
是的,HttpClient将维护线程安全连接管理器的状态(例如会话cookie)。
如果您在登录时遇到任何问题,请尝试切换到“浏览器兼容性”Cookie政策。
client.getParams().setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY);
+0
Grate help,谢谢Shamit。它的工作really.btw哪个文件解释这个功能? – wangyin 2011-03-28 13:05:49
+0
文档:http://hc.apache.org/httpcomponents-client-ga/tutorial/html/statemgmt.html – 2011-03-28 13:42:11
1
从这个页面阅读以下部分:HttpClient Tutorial about Cookies and state management 3.8。 HTTP状态管理和执行上下文 3.9。每用户/线程状态管理
,这也许就是代码你想要的:
HttpClient httpclient = new DefaultHttpClient();
// Create a local instance of cookie store
CookieStore cookieStore = new BasicCookieStore();
// Create local HTTP context
HttpContext localContext = new BasicHttpContext();
// Bind custom cookie store to the local context
localContext.setAttribute(ClientContext.COOKIE_STORE, cookieStore);
HttpGet httpget = new HttpGet("http://www.google.com/");
// Pass local context as a parameter
HttpResponse response = httpclient.execute(httpget, localContext);
相关问题
- 1. 使用Apache Httpclient时,有没有办法获得下载状态?
- 2. 使用apache HttpClient连接到Web服务
- 3. Apache HttpClient PoolingHttpClientConnectionManager泄漏连接?
- 4. Apache HttpClient 4.5:连接重置
- 5. Apache httpclient使大量的连接
- 6. 如何使用apache httpClient API?
- 7. 使用Apache HTTPClient时无法释放连接
- 8. 如何有效地重用HttpClient连接?
- 9. Apache HttpClient 4.3不保持活动状态
- 10. 同时使用apache httpclient 4.3.2和httpclient 4.1.2
- 11. 在Visual Studio中调试时底层连接已关闭错误
- 12. 使用Django进行有状态连接
- 13. 关闭所有底层网络连接
- 14. Ruby HTTPClient:如何使用持久连接?
- 15. 如何使用jOOQ获取事务内部的底层连接?
- 16. 如何使用jdbc连接检查java中的连接状态?
- 17. 如何关闭捕捉的HttpWebRequest超时后底层连接
- 18. 超时:底层连接已关闭:连接意外关闭
- 19. 调用HttpClient.GetAsync时出错:底层连接已关闭
- 20. 的Apache的HttpClient给连接超时后5个OT 6小时
- 21. android-使用apache HttpClient
- 22. 连接使用Apache Commons的HttpClient 3.1投掷ValidatorException
- 23. 如何强制Apache HttpClient/HttpConnection绝对关闭tcp连接?
- 24. 的HttpClient和连接超时
- 25. 如何使用Apache FileUppload和HttpClient?
- 26. 如何使用Apache的HttpClient 4
- 27. 如何使用Apache的HttpClient登录Gmail?
- 28. 如何使用Apache的HttpClient Android上
- 29. 如何在Apache下使用jersey-client与Apache httpclient?
- 30. 具有无状态的分层状态
服务器是否使用会话ID的Cookie? “有状态连接”与HTTP的含义是什么? – Ramon 2011-03-28 08:09:13