android httpclient與webview cookie同步

yangxi_001發表於2015-03-11

1,在登陸成功的時候定義一個全域性變數將cookie快取起來

      public static void saveCookie(DefaultHttpClient httpClient,Context content){
        List<Cookie> cookies = httpClient.getCookieStore().getCookies();  
        Cookie cookie = null;
        if (!cookies.isEmpty()) {  
            for (int i = 0; i < cookies.size(); i++) {  
                cookie = cookies.get(i);  
            }  
        }  
        ProtApplication.cookie=cookie;
    }

 其中ProtApplication.cookie為application中的一個全域性變數

2,為webView請求之前設定cookie,具體方法如下


      public void loadData(View v){
        String requestUrl="http://172.36.0.102:8080/prot/main/announce2.0/announce_Launch.jsp";
        testwv.getSettings().setJavaScriptEnabled(true);
        Cookie sessionCookie = ProtApplication.cookie;    //這裡的cookie就是上面儲存的cookie  
        CookieSyncManager.createInstance(this);  
        CookieManager cookieManager = CookieManager.getInstance();  
        String cookieString = sessionCookie.getName() + "=" + sessionCookie.getValue() + "; domain=" + sessionCookie.getDomain();  
        cookieManager.setCookie(requestUrl,cookieString);
        cookieManager.setAcceptCookie(true);
        testwv.loadUrl(requestUrl);
    }


注意:cookieString需要設定域名,loadUrl中的url與setCookie中的url應該保持一致

相關文章