会话cookie与indy

opc*_*0de 6 delphi indy delphi-xe2

我必须浏览一个与indy的idhttp保持会话ID的网站.

我使用以下代码初始化我需要的组件.

procedure InitSession;
begin
  Initalized := True;
  try
  ihttp := TIdHTTP.Create(nil); //the variables are declared globally
  idCookie := TIdCookieManager.Create(nil);
  ihttp.ConnectTimeout := 5000;
  ihttp.AllowCookies := true;
  ihttp.HandleRedirects := true;
  ihttp.CookieManager := idCookie;
  except
  Initalized := False;
  end;
end;
Run Code Online (Sandbox Code Playgroud)

问题是当我发出请求时,不发送cookie.为了发送包含会话ID的cookie,我需要做什么.谢谢

Rem*_*eau 6

如果在新请求中没有发回TIdCookieManagercookie,则在收到cookie时拒绝cookie,或者将接受的cookie与新请求不匹配.您能否显示Set-Cookie发送cookie 的实际响应标头,以及您认为cookie未被正确发送回的URL?您是否在收到cookie后验证它是否真的TIdCookieManager在发送新请求之前结束?

您使用的是哪个版本的Indy?在2011年之前,早期版本的Indy 10确实破坏了基本上无法使用的cookie处理.但是在2011年初,IdCookieManager.pas并且IdCookie.pas从头开始重新编写,并且自2011年5月以来一直在正常工作,我还没有看到任何关于cookie错误处理的新报告.