Android的HttpClient和WebView session不同的問題


在開發一個項目時,遇到了這么一個問題,登錄界面是用Android的native的UI來做的,登錄成功后會跳轉到WebView來加載Sencha Touch的數據,但是在WebView到后台Load數據的時候發現,這時的session和登錄時的session不同了,因此取不到數據,為此google了很久,終於在StackOverflow找到了方法,在此先貼出原文地址:
其中關鍵點在下面的這些code里:
private DefaultHttpClient httpClient;  
public static Cookie cookie = null;  
  
//After Login  
List<Cookie> cookies = httpClient.getCookieStore().getCookies();  
if (!cookies.isEmpty()) {  
    for (int i = 0; i < cookies.size(); i++) {  
        cookie = cookies.get(i);  
    }  
}  
  
 //注:下面的code寫在WebView的Activity里  
//------- Web Browser activity  
Cookie sessionCookie = myapp.cookie;    //這里的cookie就是上面保存的cookie  
CookieSyncManager.createInstance(this);  
CookieManager cookieManager = CookieManager.getInstance();  
if (sessionCookie != null) {  
    cookieManager.removeSessionCookie();  
    String cookieString = sessionCookie.getName() + "=" + sessionCookie.getValue() + "; domain=" + sessionCookie.getDomain();  
    cookieManager.setCookie(myapp.domain, cookieString);  
    CookieSyncManager.getInstance().sync();  
不多說了,主要是在登錄成功后,把cookie存起來,然后在WebView中SetCookie。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM