java - Android 中是否有用于将 Cookie 格式化为 CookieManager 值的类?

标签 java android cookies setcookie

当我的应用程序启动时,我向网络服务发送登录请求并收到一个 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” header 值。有这种东西吗?

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

最佳答案

首选方法似乎是将标题从您的响应直接发送到 CookieManager。我基于 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());
}

关于java - Android 中是否有用于将 Cookie 格式化为 CookieManager 值的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5025786/

相关文章:

java - Android AlarmManager 每天下午 3 点运行

java - 如何加快国外 Collection 的急切加载速度?

android - 无法从动态添加的复选框中获取值

java - 跨站脚本 - Cookie 加密

iphone - 如何获取 cookie 并将它们用于其他请求,如 POST ( iOS )?

python - 我无法在 Tornado/Python 上设置 cookie

java - 解析 xsd 以使用 JAXB 生成类时出现 NoSuchMethodError

java - 在 Maven 中将一个属性分配给另一个属性

android - api level 8制作vcard时不插入图片源码

java - 使用 SimpleXML 反序列化多个对象中的 XML