搜索了很多。
我有一个应用程序。应用程序登录服务器并接收一些cookie,然后它可以与它们执行一些POST请求(例如,获取用户配置文件)。我想在会话之间存储它们(这意味着我可以重新启动设备,运行应用程序并获取配置文件而无需额外登录)。或者,换句话说,如何创建持久性cookie存储?
我使用的是唯一的DefaultHttpClient,而且没有WebViews。但是我应该在使用一些cookie创建后初始化这个客户端。我应该把它存放在文件中还是什么?有没有办法以iOS方式做到没有奇怪的黑客,存储在文件/数据库和手动填充CookieManagers?
答案 0 :(得分:4)
现在我正在使用PersistentCookieStorage类来实现这些目的。我在应用程序启动时创建一个单例。它将Cookie存储在SharedPreferences中。
答案 1 :(得分:0)
java.net.CookieStore的实现,用于提供持久性cookie。
答案 2 :(得分:0)
在CookieManager中存储一些数据:
void populateCookieStore(URI uri)
throws IOException {
CookieManager cm = new CookieManager(null, CookiePolicy.ACCEPT_ALL);
CookieHandler.setDefault(cm);
Map<String,List<String>> header = new HashMap<>();
List<String> values = new ArrayList<>();
values.add("JSESSIONID=" + SESSION_ID + "; version=1; Path="
+ URI_PATH +"; HttpOnly");
values.add("CUSTOMER=WILE_E_COYOTE; version=1; Path=" + URI_PATH);
header.put("Set-Cookie", values);
cm.put(uri, header);
}