[英]Android HttpClient persistent cookies
更新:不應再向閱讀此內容的任何人推薦此問題及其答案。 Android不再推薦使用HttpClient(讀取:棄用),而是推薦使用HttpUrlConnection 。 現在使用的庫的一個很好的例子是Retrofit和OkHttp 。 在此問題的上下文中,可以使用后續查詢保存,存儲和傳遞cookie。 這不是透明處理的。 使用OkHttp,您可以使用攔截器 。
我有一個具有多個意圖的Android應用程序。
第一個意圖是登錄表單,后續意圖依賴於登錄過程提供的cookie。
我遇到的問題是,cookie似乎並沒有貫穿整個意圖。 我在每個意圖中創建新的HttpClients(我最初嘗試將Parcelable傳輸到每個意圖,但效果不是很好)。
有沒有人有任何提示讓餅干堅持意圖?
您可以執行@Emmanuel建議的操作,也可以在要創建的HttpClient之間傳遞BasicHttpContext 。
示例使用上下文和cookie, 在此處完成代碼
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/", localContext);
不要創建新的HttpClients; 這將清除cookie。 重用一個HttpClient。
在Application類中定義HttpClient,並在activity中使用它。
在申請中
public class AAA extends Application {
public HttpClient httpClient;
httpClient = new DefaultHttpClient();
在活動中
AAA aaa = (AAA)getApplication();
httpClient = app.httpClient;
使您的httpClient成為單例類。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.