在Android中是否有一个类用于将cookie格式化为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类或某些实用程序类构建Cookie URL和“set-cookie”标题值。这样的事情是否存在?
我尝试了rfc2109spec和rfc2965spec,但它们生成“cookie”标题,而不是“set-cookie”标题。
解决方案
The preferred method appears to be to send the Headers from your Response directly to the CookieManager. I'm basing this on code I found from 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());
}
不隶属于 StackOverflow