2013-02-22 101 views
0

我已通过WebView登录到网站。那么我已经得到了cookie在登录时由webview设置。那么我已经尝试稍后设置cookie。请参阅我的代码:无法设置Cookie android.webkit.CookieManager

CookieSyncManager.createInstance(context); 
CookieManager cookieManager = CookieManager.getInstance(); 

Log.e("checkPost 1", cookie); 
cookieManager.setCookie("https://************", cookie); 

Log.e("checkPost 2", cookieManager.getCookie("https://*************")); 
CookieSyncManager.getInstance().sync(); 
Log.e("checkPost 3", cookieManager.getCookie("https://*************")); 

in checkPost 1打印的Cookie显示它很好。但在checkPost 2sync()它通过CookieSyncManager.getInstance().sync();声明,checkPost 3显示大部分的cookie都消失了。问题是什么 ?我需要设置cookie。但我找不到花费大约2天的方式。

编辑:

Android文档中它说:

公共无效setCookie方法(字符串URL,字符串值)

设置指定网址的cookie。任何具有相同 主机,路径和名称的现有cookie都将被替换为新的cookie。正在设置的Cookie 一定不能过期,不能是会话Cookie,否则将被忽略。

有没有办法强制CookieManager设置会话cookie通过setCookie()? 我认为问题是,可能是我想设置session cookie

+0

这看起来像http://stackoverflow.com/questions/1652850/android-webview-cookie-problem/15772246重复 - 你的问题和那篇文章之间有区别吗? – 2013-04-02 19:10:29

回答

-1

我不知道有任何答案或不是我的问题。但为了我的目的,我用另一种方法来解决我的问题。这是一个漫长的过程,但它的工作原理。我放弃了session cookieCookieManager(这是Android Developer网站的文档无法实现的)的想法。所以,我所做的是:我已将字符串中的会话cookie转换并保存在内存中。为了以后使用,我只是从内存中取出字符串并将其转换回会话cookie。

编辑:

(对于负选民)我在我的答案告诉这个过程太长,像4-5类。而这个项目是我在android中的第一个项目,所以代码太乱了。所有的课程都充满了太多的代码。所以不可能在这里发布。我已经告诉过我用过的过程。那么为什么反对投票?

我已经以我自己的方式转换了会话并以相反的方式构建了会话字符串。

如果有任何方式我会张贴答案。我花了大约15〜20天来构建类和算法。所以为什么不做一些Google,找到更好的方法,或者只是简单地构建自己的算法和流程。我已经在这里告诉了关键部分,您只需要找到一种方法将其实现为代码。谢谢

+1

-1没有代码来实际显示这一点。你如何“将其转换回会话cookie”?你是否设置HTTP标头? – 2013-10-17 19:26:05