1

我正在尝试在 webview 中使用 API CookieManager 为 sencha 页面设置 cookie。

CookieSyncManager.createInstance(this);
    cookieManager = CookieManager.getInstance();
    cookieManager.setAcceptCookie(true);
cookieManager.setCookie(domain, cookie);

但是当页面在 webview 中加载时,会话没有反映出来。

4

1 回答 1

0

这是一段工作代码。

    private void setCookie(DefaultHttpClient httpClient, String url) {
    List<Cookie> cookies = httpClient.getCookieStore().getCookies();
    if (cookies != null) {
        CookieSyncManager.createInstance(context);
        CookieManager cookieManager = CookieManager.getInstance();
        cookieManager.setAcceptCookie(true);

        for (int i = 0; i < cookies.size(); i++) {
            Cookie cookie = cookies.get(i);
            String cookieString = cookie.getName() + "=" + cookie.getValue();
            cookieManager.setCookie(url, cookieString);
        }
        CookieSyncManager.getInstance().sync();
    }
}

这里的 httpclient 是您在 HttpGet/HttpPost 请求中使用的 DefaultHttpClient 对象。还要确保的一件事是 cookie 名称和值,应该给出

String cookieString = cookie.getName() + "=" + cookie.getValue();

setCookie 将为给定的 URL 设置 cookie。

于 2013-08-06T10:27:08.967 回答