我正在使用Idhttp (indy10与delphi-xe2)来发布表单,但我从站点收到会话过期消息,尽管我已经设置了cookie管理器。谢谢。
procedure TForm2.IdCookieManager1NewCookie(ASender: TObject; ACookie: TIdCookie;
var VAccept: Boolean);
begin
ShowMessage(Acookie.CookieText);
end;来自ShowMessage的结果是:ASP.NET_SessionId=enn1xnqde1o1rduedels5fqp; Path=/; Domain=www8.ticketingcentral.com; HttpOnly; Max-Age=252028195945; Expires=Fri, 31-Dec-9999 16:59:59 GMT
发布于 2013-07-18 03:54:11
根据RFC6265,当cookie中同时存在Max-Age和Expires时,Max-Age优先,Expires被忽略。Max-Age从当前时钟时间开始以秒为单位表示。252028195945的Max-Age值是未来的~7991年!加上当前时钟创建了一个10004年的日期,这是TDateTime无法表示的(9999年是它支持的最高年份)。因此,当过期日期设置为负值时,您可能会遇到舍入问题,从而表示过去的日期,而不是未来的日期,从而在cookie可以发送回HTTP服务器之前过期。
https://stackoverflow.com/questions/17705391
复制相似问题