我已經搜索了很多關於如何在多線程中使用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