delphi+indy10 idhttp post登录网站后。怎样保持登录状态。
第一次发帖。先谢谢各位。
我查资料的时候 听说 用indy10,idhttp就不管管cookie了。会想webbrowse一样自动保存。但是我测试的时候
发现不是这样的啊。我用idhttp post 能登录成功。但是 我接着用 idhttp get这个网站首页的时候。返回的
源码,并不是登录状态的东西。
我的代码如下:
IdHTTP1.Request.Accept := '*/*';
IdHTTP1.Request.Host := 'www.meilishuo.com';
IdHTTP1.Request.Referer := 'http://www.meilishuo.com/logon';
IdHTTP1.Request.Connection := 'Keep-Alive';
IdHTTP1.HTTPOptions := IdHTTP1.HTTPOptions + [hoKeepOrigProtocol];
IdHTTP1.ProtocolVersion := pv1_1;
IdHTTP1.AllowCookies := True;
Params1.Append('emailaddress=bucuodfsafsa');
Params1.Append('password=870527');
Params1.Append('savestate=true');
Params1.Append('type=undefined');
Params1.Append('follow=0');
Params1.Append('wbid=0');
Params1.Append('redirect=http%3A%2F%2Fwww.meilishuo.com%2Fwelcome');
url := 'http://www.meilishuo.com/users/ajax_logon?frm=undefined';
IdHTTP1.HandleRedirects := true;
s := idhttp1.Post(url, Params1);
到这里 post结果 能成功登录。
下面我接着写的 :
cookie := '';
for i := 0 to IdCookieManager1.CookieCollection.Count - 1 do begin
cookie := cookie + IdCookieManager1.CookieCollection.Items[i].CookieText;
end;
IdHTTP1.Request.RawHeaders.Add('cookie: ' + cookie);
//为idhttp cookie 赋值(我不知道是否需要这个步骤indy10);
s := IdHTTP1.Get('http://www.meilishuo.com/welcome');
想通过get取源码。 发现返回的s 并不是登录后的东西。不明白为什么。呢
网上也听说 要和 cookiemaneger一起用。我也测试过。始终。不行。谢谢各位大侠。
帮个忙。