当前位置:  开发笔记 > 前端 > 正文

Android:如何存储Cookie?

如何解决《Android:如何存储Cookie?》经验,为你挑选了2个好方法。

在我的Android应用程序中,每个活动都填充了来自网络上某处的xml文件的数据.提供这些文件的网站有一个登录机制,可以使用cookie.

我知道如何向登录页面发出HTTP请求并接收cookie.我不知道的是,我如何存储它以在其他活动中重复使用它以及下次启动应用程序时.该cookie有效期为一年,因此我的应用程序的用户应该登录一次,然后再也不会再登录一年.

我怎么做?我搜索了很多,但要么我使用了错误的关键字,要么互联网上没有简单的解决方案.我希望这里有人可以帮助我.

最诚挚的问候和感谢,Jan Oliver



1> Heath Border..:

使用CookieSyncManager存储您的cookie值.它可以在应用程序启动时持续存在.

小心在KitKat上的WebViewClient#shouldInterceptRequest中使用CookieSyncManager .它将陷入僵局.

编辑

CookieSyncManager 在API 21中已弃用:

此类在API级别21中已弃用.WebView现在会根据需要自动同步Cookie.您不再需要创建或使用CookieSyncManager.要手动强制同步,您可以使用CookieManager方法flush(),它是sync()的同步替换 .


在我看来,这应该是正确的答案......它就像`CookieSyncManager.getInstance().sync();`每当你想用持久性(而不是RAM)保存cookie时
文档显示这只能与webview一起使用
CookieSyncManager将在重新启动后保持不变

2> cistearns..:

看起来Android在内存实现中使用默认值,因此您需要创建自己的持久性cookie存储.

本Java教程概述了利用默认实现创建自己的持久存储. http://download.oracle.com/javase/tutorial/networking/cookies/custom.html

该示例有两个todo用于存储(读/写)对于存储,我只使用SharedPreferences来存储您需要的会话cookie,而不是持久存储任何其他cookie.

该示例使用了一个关闭钩子,这在Android中不是您想要的.代替run()和钩子我只需要一个新的公共方法persist()来保存你想要的东西,尽管这需要你手工持久存储().

鉴于您只有一个或两个重要的cookie,您可以将它们保存在添加(...)中


@janoliver你不应该存储登录凭据!
推荐阅读
无名有名我无名_593
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有