Delphi IdHTTP 设置cookie 和访问后读取Cookie 值(重要collection不需要item索引)
procedure TForm1.btn1Click(Sender: TObject);
var
IdHTTP: TIdHTTP;
mstrCookie: string;
Cookies : TIdCookieManager;
i: Integer;
begin
IdHTTP := TIdHTTP.Create(nil);
IdHTTP.Request.UserAgent := '';
mstrCookie := 'aaa=5555&bb=12345';
IdHTTP.Request.AcceptEncoding := '';
if mstrCookie <> '' then
begin
IdHTTP.Request.SetHeaders; //说要加这一句。
IdHTTP.Request.CustomHeaders.Add('Cookie: ' + mstrCookie);
end;
IdHTTP.AllowCookies := True;
Cookies := TIdCookieManager.Create(nil);
IdHTTP.HandleRedirects := True;
IdHTTP.CookieManager := Cookies;
IdHTTP.ReadTimeout := 25000; //设置读取超时
Memo1.text := IdHTTP.Get('http://www.baidu.com/');
mstrCookie:='';
//Memo1.Lines.Add (Cookies.CookieCollection.Items[0].CookieText);
for i := 0 to Cookies.CookieCollection.Count - 1 do
begin
//Memo1.Lines.Add(Cookies.CookieCollection.Items[i].CookieName + 'Value:' + Cookies.CookieCollection.Items[i].Value);collection不需要item索引
Memo1.Lines.Add(Cookies.CookieCollection.Items[i].CookieName + 'Value:' + Cookies.CookieCollection.Items[i].Value);
mstrCookie:=mstrCookie+ Cookies.CookieCollection.Items[i].CookieName+'='+ Cookies.CookieCollection.Items[i].Value +'&';
end;
Memo1.Lines.Add ( mstrCookie);
IdHTTP.free;
end;