2012-05-22 49 views
0

已搜索了很多。在Android中存儲和恢復Cookie(持久cookie存儲)

我有一個應用程序。 App在服務器上登錄並接收一些cookie,然後它可以執行一些POST請求(例如獲取用戶配置文件)。我想在會話之間存儲它們(這意味着我可以重新啓動設備,運行應用程序並獲取配置文件,而無需額外登錄)。或者換句話說,如何創建持久性cookie存儲?

我使用唯一的DefaultHttpClient並且沒有WebViews。但是我應該在用一些cookies創建之後初始化這個客戶端。我應該將它存儲在文件或什麼?有沒有辦法以iOS的方式做到這一點,沒有奇怪的黑客入侵,存儲在文件/數據庫和手動填寫CookieManagers?

回答

4

現在我正在使用PersistentCookieStorage類來達到這些目的。我在應用程序啓動時創建一個單例。它將Cookie存儲在SharedPreferences中。

0

存儲在CookieManager一些數據:

void populateCookieStore(URI uri) 
     throws IOException { 

    CookieManager cm = new CookieManager(null, CookiePolicy.ACCEPT_ALL); 

    CookieHandler.setDefault(cm); 

    Map<String,List<String>> header = new HashMap<>(); 

    List<String> values = new ArrayList<>(); 

    values.add("JSESSIONID=" + SESSION_ID + "; version=1; Path=" 
       + URI_PATH +"; HttpOnly"); 

    values.add("CUSTOMER=WILE_E_COYOTE; version=1; Path=" + URI_PATH); 

    header.put("Set-Cookie", values); 

    cm.put(uri, header); 
}