在webview中设置多个cookie

1.通过httpclient得到服务器返回的多个cookie

httpclient.execute(httpget);
List<Cookie> cookies = ((AbstractHttpClient) httpclient).getCookieStore().getCookies();
if (!cookies.isEmpty()) {
    for (Cookie c : cookies) {
        if ("www.baidu.com".equals(c.getDomain())) {
            Log.d(TAG,c.getName() + "=" + c.getValue()); //同一个domain会有多个cookie。    
            map.put(c.getName(),c.getValue());    
        }
    }
}

注意:如果直接通过response的header去获取服务器返回的cookie可能会出错。因为httpclient是支持请求重定向的。而resopnse只会返回最后的一个header。

2.给webview设置多个cookie

webview.getSettings()....;//webview的设置代码要写在cookie之前

CookieSyncManager.createInstance(getBaseContext());
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setAcceptCookie(true);

Set<String> keySet = map.keySet();
for(String key : keySet){
    String value = map.get(key);
    cookieManager.setCookie(url, key+"="+value);
}

cookieManager.sync();
webview.loadUrl(url);


你可能感兴趣的:(在webview中设置多个cookie)