2011-02-17 33 views
2

当我的应用程序启动时,我会向Web服务发布登录请求并接收Cookie。我想使用的Cookie在我的WebView中,我用下面的代码做:在Android中是否有一个用于将Cookie格式化为CookieManager值的类?

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的url和“设置Cookie”由CookieManager所需的头值由建Cookie类或一些实用程序类。这样的事情存在吗?

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

回答

0

首选的方法似乎是将响应中的标题直接发送到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()); 
} 
相关问题