1
我登录到一个网站,试图让饼干运行。据我所知,将IdCookieManager分配给IdHTTP并设置AllowCookies:=true
应该是我需要做的一切,对吧?登录后,我成功接收cookie,但当我尝试进一步浏览时,cookie未被发送。IdCookieManager与IdHTTP不发送饼干
这里是我的代码:
procedure TForm1.Login;
var data: TStringList;
begin
data:=TStringList.Create;
try
IdHTTP.Get('http://navratdoreality.cz/'); // Here I receive Set-Cookie
data.Add('ACTION=check_adult');
data.Add('check=18plus');
Memo1.text:=IdHTTP.Post('http://navratdoreality.cz/',data); // Here the
// request contains the cookie and I get a succesfully-logged page in
// response, no more set-cookie
except
ShowMessage('err');
end;
data.Free;
end;
procedure TForm1.Navigate;
var ms:TMemoryStream;
begin
ms:=TMemoryStream.Create;
try
IdHTTP.Get('http://www.navratdoreality.cz/?p=view&id='+Edit1.Text, ms);
// the request doesn't contain any cookies, even though the cookie from
// logging is saved in IdCookieManager
ms.Position:=0;
Memo1.Lines.LoadFromStream(ms, TEncoding.UTF8);
except
ShowMessage('err');
end;
ms.Free;
end;
我不知道可能是什么问题。我的Indy是10.5.8.0。如果您要查看该网站,请注意,其中一些是nsfw。
谢谢
从cookie的角度来看,'navratdoreality.cz'和'www.navratdoreality.cz'是独立的域名,因此不能共享cookie,除非cookie的属性允许共享。 – 2012-07-16 23:36:38