簡體   English   中英

Android HttpClient持久性cookie

[英]Android HttpClient persistent cookies

更新:不應再向閱讀此內容的任何人推薦此問題及其答案。 Android不再推薦使用HttpClient(讀取:棄用),而是推薦使用HttpUrlConnection 現在使用的庫的一個很好的例子是RetrofitOkHttp 在此問題的上下文中,可以使用后續查詢保存,存儲和傳遞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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM