我有一个带有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 请求?