Android系统。重新启动应用程序后,不会保存OkHttp cookie

时间:2017-02-28 15:13:01

标签: android okhttp

我使用以下代码设置Cookie

PersistentCookieJar cookieJar = new PersistentCookieJar(
                new SetCookieCache(), new SharedPrefsCookiePersistor(context));
        clientBuilder.cookieJar(cookieJar);
        Retrofit retrofit = builder.client(
                clientBuilder.build()).build();

这是我从服务器收到的标题:

Set-Cookie: wordpress_logged_in_6041590398a33ab947560d559f09d479=capad%7C1488467742%7CSttfNHrOkwd67CteCGepJyv3bNU2SeSW0URepOPxCe5%7C5091b3bbcc334e520cec85c4c9b8e26a07a962d3c00c8c709b87f90018370f60; path=/; secure; httponly

1 个答案:

答案 0 :(得分:1)

您的Cookie(Set-Cookie: wordpress_logged_in_[etc]; path=/; secure; httponly)没有设置到期日期。

这使它成为一个“会话”cookie,不应该持久化。您的PersistentCookieJar可能会遵循正确的规范,不会在没有过期的情况下保留任何Cookie。

您可以在收到此cookie时手动添加过期(可能使用OkHttp拦截器),也可以创建自己版本的PersistentCookieJar以保留所有Cookie(这可能不是一个好主意)。

另一种选择是尊重发送该cookie的人希望它成为会话cookie的事实。