为什么 curl 会收到过期的 cookie?
在响应某个 URL 时,服务器会发送一个302 Found
响应和一个 cookie。在 Firefox 中,此 cookie 可以无缝设置。Firebug 说:
Set-Cookie somekookie=91b115e3d4a5889ed93e70a7ddb24957a1eb0e27cbcd96a3342a8064; expires=Sun, 24-Oct-2010 23:28:55 GMT; path=/; domain=.somedomain.ru
然而当curl请求同样的url时,cookie已经过期,curl的输出:
* Added cookie somecookie="deleted" for domain somedomain.com, path /, expire 1224891945
< Set-Cookie: somecookie=deleted; expires=Fri, 24-Oct-2008 23:45:45 GMT; path=/; domain=.somedomain.com
为什么日期看起来这么旧以及如何解决这个问题?
答案1
你有没有尝试过:
curl -L -b null somedomain.com
-b 启用 cookie,-L 跟随位置 (302)。'null' 是任何空的/不存在的文件。
或者存储 cookie:
curl -b cookies -c cookies somedomain.com
-c 写入 netscape 样式的 cookies 文件。
如果没有更多信息,这就是我能做的最好的了。HTH。
答案2
好吧,当 curl 执行请求时,没有设置 Cookie(除非您指定一个),所以服务器可能只是说:这是一个新会话,我将删除您可能拥有的此域上的任何站点的任何 cookie,以防万一。
在 Firefox 上,是否有 cookie发送有要求吗?