繁体   English   中英

Android中是否存在用于将Cookie格式化为CookieManager值的类?

[英]Is there a class in Android for formatting Cookies into the value for a CookieManager?

当我的应用程序启动时,我将登录请求发布到Web服务并收到Cookie。 我想在我的WebView中使用该Cookie,可通过以下代码进行操作:

List<Cookie> cookies = this.get_my_cookies_from_somewhere();
CookieSyncManager cookieSyncManager = CookieSyncManager.createInstance(this);
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.removeAllCookie();

for (Cookie cookie : cookies) {
    String rawUrl = (cookie.isSecure() ? "https" : "http") + "://" + cookie.getDomain() + cookie.getPath();
    cookieManager.setCookie(rawUrl, cookie.getName() + "=" + cookie.getValue() + "; domain=" + cookie.getDomain());
}
cookieSyncManager.sync();

理想情况下,我想由Cookie类或某些实用程序类来构建CookieManager所需的cookie url和“ Set-Cookie”标头值。 这样的事情存在吗?

我尝试了RFC2109Spec和RFC2965Spec,但它们产生的是“ Cookie”标头,而不是“ Set-Cookie”标头。

首选方法似乎是将标题从您的响应直接发送到CookieManager。 我将此基于我从Romain Guy找到的代码

final CookieManager cookieManager = CookieManager.getInstance();
final HttpResponse response = ...
final Header[] cookies = response.getHeaders("set-cookie");
for (Header cooky : cookies) {
    cookieManager.setCookie(url, cooky.getValue());
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM