我有一个带有 webview 的应用程序来显示一个电子商店网站。由于各种原因,登录标准是用DefaultHttpClient和HttpPost以本机形式制作的。
当用户通过登录开始时,我没有问题将会话 cookie 从请求保存到 webview cookie 存储。
我的问题是当用户第一次浏览 webview 登录后,我无法从 cookiestore 中检索 webview cookie 会话以将其放入我的DefaultHttpClient
这是我的代码:
CookieSyncManager.createInstance(context);
CookieManager cookieManager = CookieManager.getInstance();
CookieSyncManager.getInstance().sync();
cookieManager.setAcceptCookie(true);
DefaultHttpClient client = new DefaultHttpClient(clientConnectionManager, params);
String[] keyValueSets = cookieManager.getCookie(context.getString(R.string.cookie_domaine)).split(";");
for(String cookie : keyValueSets)
{
String[] keyValue = cookie.split("=");
String key = keyValue[0];
String value = "";
if(keyValue.length>1) value = keyValue[1];
BasicClientCookie2 cookieForRequest = (BasicClientCookie2) new BasicClientCookie2(key, value);
cookieForRequest.setDomain(context.getString(R.string.cookie_domaine));
cookieForRequest.setPath("/");
client.getCookieStore().addCookie(cookieForRequest);
}
在调试中,我看到了我的会话 cookie,但getCookie方法不返回它,我认为这是因为 cookie 会话域以点开头。
如何维护我的webview会话到DefaultHttpClient请求?