我使用 Volley 库来执行我的应用程序的请求。现在我确实需要按照以下顺序执行一些操作:
- 使用 Volley 库的 POST 请求
- 我收到带有会话 cookie 的 204 响应
- 我需要将该 cookie 设置为与 WebView 一起使用
我需要使用 Volley 执行第一个请求,因为响应的标头包含下一个请求的 uri。我需要捕获该标头。
问题是我无法使用保存会话cookieCookieManager
,因为,作为doc http://developer.android.com/reference/android/webkit/CookieManager.html#setCookie(java.lang.String,%20java.lang.String)说:“正在设置的cookie必须没有过期,并且不能是会话cookie,否则它将被忽略。”。
有没有办法存储该 cookie 以供以后与 WebView 一起使用?
奇怪的是,该文档要么已经过时,要么完全不正确,似乎CookieManager
将毫无问题地保存会话cookie。 (这是错误报告 https://code.google.com/p/android/issues/detail?id=67475)
这个片段对我有用:
private void syncCookie(String domain, Cookie sessionCookie) {
CookieSyncManager.createInstance(this);
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.removeSessionCookie();
String cookieString = sessionCookie.getName() + "=" + sessionCookie.getValue() + "; domain=" + sessionCookie.getDomain();
cookieManager.setCookie(domain, cookieString);
CookieSyncManager.getInstance().sync();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)