【发布时间】:2011-07-20 19:08:49
【问题描述】:
我正在尝试在我的WebView 上设置一些 cookie,以打开与我的应用程序具有相同会话的浏览器。
我阅读了很多答案,但它们对我不起作用。我发现的唯一解决方案是在loadUrl 中,硬编码extraHeaders 中的cookie 数据,但正如预期的那样,这只适用于这个请求,并且不维护会话。
我的代码是:
CookieSyncManager cookieSyncManager = CookieSyncManager.createInstance(mWebView.getContext());
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setAcceptCookie(true);
cookieManager.removeSessionCookie();
cookieManager.setCookie("http://xx.xxx.example.com","mid="+MySession.GetSession().sessionId+" ; Domain=.example.com");
cookieSyncManager.sync();
String cookie = cookieManager.getCookie("http://xx.xxx.example.com");
Log.d(LOGTAG, "cookie ------>"+cookie);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.setWebViewClient(new TuWebViewClient());
mWebView.loadUrl("http://xx.xx.example.com");
getCookie() 返回正确的数据,但是当我从服务器读取 cookie 时,它们是空的。怎么了?请指教。
谢谢!!!
【问题讨论】:
-
问题比回答更有帮助。太好了。
-
我的工作代码和查询的编译方法stackoverflow.com/a/32189400/5261591