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,我需要做什么.谢谢
如果在新请求中没有发回TIdCookieManagercookie,则在收到cookie时拒绝cookie,或者将接受的cookie与新请求不匹配.您能否显示Set-Cookie发送cookie 的实际响应标头,以及您认为cookie未被正确发送回的URL?您是否在收到cookie后验证它是否真的TIdCookieManager在发送新请求之前结束?
您使用的是哪个版本的Indy?在2011年之前,早期版本的Indy 10确实破坏了基本上无法使用的cookie处理.但是在2011年初,IdCookieManager.pas并且IdCookie.pas从头开始重新编写,并且自2011年5月以来一直在正常工作,我还没有看到任何关于cookie错误处理的新报告.