【发布时间】:2020-12-22 21:01:56
【问题描述】:
我需要检查是否已将 cookie 添加到响应中。
我有一个奇怪的问题,我的回复收到了两次 Set-Cookie 标头。
Set-Cookie:foo=bar; Domain=dev.mysite.com; Expires=Fri, 05-May-2062 04:05:43 GMT; Path=/
Set-Cookie:foo=bar; Domain=dev.mysite.com; Expires=Fri, 05-May-2062 04:05:43 GMT; Path=/
这两个标题完全相同。当我调试堆栈时调用此代码两次。这段代码的重复是由于我正在使用的网络堆栈,我无法更改。
我不关心请求中发送了哪些 cookie,但我不希望此标头发送两次。
似乎没有一种简单的方法可以找到通过addHeader 方法添加的cookie。
在调试期间,奇怪的是,如果我在 response.addCookie(myCookie); 调用之后检查响应对象中的标头,我看不到 Set-Cookie 标头。
如果响应中尚未发送同名的 cookie,我是否只能将 cookie 添加到响应中?
【问题讨论】:
-
我不知道标准方法。您可能必须使用 HttpServletResponseWrapper 解决此问题并记住那里的 cookie?!
-
是的,正如“home”(和 AFAIR)所提到的,在将响应发送到客户端(并作为请求的一部分接收回来)之前,您的程序无法访问 cookie。您唯一的选择是“记住”您已在响应生成中设置的 cookie。
标签: java cookies response session-cookies