【问题标题】:Android Persistent Cookie Store with HTTPUrlConnection带有 HTTPUrlConnection 的 Android 持久 Cookie 存储
【发布时间】:2015-12-09 16:10:05
【问题描述】:

我现在搜索了很多关于 Cookie 的持久性但找不到好的解决方案。

我使用 HTTPUrlConnection 对服务器进行身份验证,然后我得到了 Cookie。我在 CookieManager 中检索它们并可以将它们加载到新连接中。现在我想持久化那个 Cookies,也许是整个 Cookiemanager 对象。我找到了一个解决方案,您可以通过创建 CookieManager 来指定 CookieStore 来持久化 Cookie。

我发现只有旧的解决方案(2-3 年)说您必须构建自己的持久性 CookieStore,因为 SDK 中没有实现持久性 CookieStore?这是最新的吗? SDK 中是否已经实现了持久性 CookieStore,还是我必须自己使用 SharedPreferences 来持久化 Cookie?或者现在有没有人有更好的解决方案来持久化 Cookie?

最好的问候,

【问题讨论】:

    标签: android cookiestore android-cookiemanager


    【解决方案1】:

    这似乎在其他一些地方得到了回答,我没有尝试过,但您可以在此链接中获得详细说明:

    http://blog.winfieldpeterson.com/2013/01/17/cookies-in-hybrid-android-apps/

    public class YourApplication extends Application {
      public void onCreate() {
        super.onCreate();
    
        //Setup Cookie Manager and Persistence to disk
        CookieSyncManager.createInstance(this);
        CookieManager.getInstance().setAcceptCookie(true);
      }
    }
    
    public class MainActivity extends BaseActivity {
      public void onResume() {
        CookieSyncManager.getInstance().stopSync();
      }
    
       public void onPause() {
         CookieSyncManager.getInstance().sync();
       }
    }
    

    API21 弃用 CookieSyncManager,现在确保将 cookie 写入磁盘使用:

    CookieManager.flush()
    

    【讨论】:

    • 谢谢,但 CookieSyncManager 在 API21 中已被弃用。
    • 我在文章中添加了一个API21 wokarround,我没有测试过。我希望这会有所帮助。
    • 非常感谢。似乎您可以使用 CookieManager.flush() 写入持久存储,但 CookieManager 没有从持久存储中检索的方法?我想也许你必须自己编写一个 Cookie 存储,当你在 CookieManager 的初始化中定义一个 CookieStore 并调用自定义 CookieStore 的方法时,CookieManager.flush() 会将它写入 CookieStore。我稍后会证明这一点。最好的问候。
    猜你喜欢
    • 2020-09-22
    • 1970-01-01
    • 2017-07-25
    • 1970-01-01
    • 1970-01-01
    • 2014-10-17
    • 1970-01-01
    • 2014-10-07
    • 2020-06-02
    相关资源
    最近更新 更多