在Play + Java中迭代cookie

时间:2015-02-26 21:05:29

标签: java cookies playframework-2.0

我一直在研究管理播放应用程序存储的cookie。理想情况下,我想为该用户迭代所有cookie,并根据某些条件选择性地删除一些cookie。不过,在我这样做之前,我想简单地迭代cookie来查看它们,例如:

for (Http.Cookie cookie : Http.Context.current().response().cookies()) {
    Logger.info("cookie " + cookie.name());
}

即使我们在应用程序的许多其他地方有效地使用cookie,但cookies()也没有任何结果。如果我查看cookies()。尺寸,它就是0.我打开了网络检查员,显示了大约15-20个可用的cookie。我使用了错误的命令吗?

我对此进行了进一步的调查,有时我会得到一些饼干,但在网络检查员中看不到超过1或2的20-ish。我能够验证那些cookie是在其他地方读取的。我甚至可以.get(命名)特定的cookie,它们不会出现在迭代器中。

1 个答案:

答案 0 :(得分:1)

您正在从响应中读取Cookie,而不是请求。响应仅显示您在当前请求中设置的Cookie,因为Cookie仅在您设置时才会在响应中发送。如果要查看所有传入的cookie,您需要迭代请求中的cookie:

for (Http.Cookie cookie : Http.Context.current().request().cookies()) {
    Logger.info("cookie " + cookie.name());
}