Android从webview获取会话cookie

时间:2013-08-20 07:40:35

标签: android android-webview session-cookies

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

0 个答案:

没有答案