Idhttp发布会期满

时间:2013-07-17 16:33:12

标签: delphi delphi-xe2 indy indy10

我正在使用Idhttp(带有delphi-xe2的indy10)发布表单,但是我从网站上获得了会话过期消息,尽管我已经设置了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

1 个答案:

答案 0 :(得分:2)

如果Cookie中存在Max-AgeExpires,则Max-Age优先级,并且根据RFC 6265忽略ExpiresMax-Age表示为从当前时钟时间开始的秒数。未来Max-Age 252028195945值约为7991年!添加当前时钟会在10004年创建一个日期,TDateTime无法表示(9999是它支持的最高年份)。因此,您可能会遇到一个舍入问题,将到期日期设置为负值,从而表示过去而不是未来的日期,从而使Cookie在将其发送回HTTP服务器之前到期。