麻烦设置cookie android.webkit.CookieManager

时间:2013-02-22 12:35:05

标签: android cookiemanager

我已通过WebView登录网站。然后我得到了在登录时由webview设置的cookie。然后我试着稍后设置cookie。请看我的代码:

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://*************"));
checkPost 1打印的cookie中的

表明它没问题。但在checkPost 2sync() CookieSyncManager.getInstance().sync();语句后,checkPost 3表示大部分Cookie已消失。问题是什么 ?我需要设置cookie。但我找不到花费大约2天的方法。

修改

在android文档中它说:

  

public void setCookie(String url,String value)

     

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

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

1 个答案:

答案 0 :(得分:-1)

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

修改

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

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

如果有任何方式我会发布答案。构建类和算法需要大约15~20天。那你为什么不做一些谷歌并找到更好的方法,或者只是像我一样建立自己的算法和流程。我已经告诉了这里的关键部分,你只需要找到一种方法将其实现到代码中。感谢