我正在使用Indy中的IdHttp模块制作一些简单的Delphi软件。我想通过使用IdHttp的帖子功能来访问this page来打开这个网页。
首先我必须登录,(在http://user.buddybuddy.co.kr/Login/Login.asp),所以我登录,但在登录网页后,我可以看到另一个登录页面。但是当我尝试登录时(http://user.buddybuddy.co.kr/usercheck/UserCheckPWExec.asp),我遇到了一条错误消息,“非法访问。”
如果有人可以帮助我,我会很感激!
begin
sl.Clear;
sl.Add('ID=ph896011');
sl.add('PWD=pk1089');
sl.add('SECCHK=0');
IdHTTP1.HandleRedirects := True;
IdHTTP1.Request.ContentType := 'application/x-www-form-urlencoded';
memo1.Text:=idhttp1.Post('http://user.buddybuddy.co.kr/Login/Login.asp',sl);
if pos('top.location =',Memo1.Text)> 0 then
begin
application.ProcessMessages;
sleep(1000);
Memo1.Text:= '';
sleep(300);
sl2.Clear;
sl2.Add('PASSWD=pk1089' );
Memo2.Text := IdHTTP1.Post('http://user.buddybuddy.co.kr/usercheck/UserCheckPWExec.asp', sl2);
sleep(300);
Memo1.Text := '';
//memo1.Text := IdHTTP1.Get('https://user.buddybuddy.co.kr/Login/Logout.asp');
//Sleep(1000);
end;
答案 0 :(得分:1)
服务器几乎肯定会通过返回带有Login.asp请求响应的 cookie 来跟踪您是否已登录。您需要将该cookie与任何后续请求一起发回。要跟踪cookie,请创建一个TIdCookieManager
对象并将其分配给HTTP对象的CookieManager
属性。第一个请求将在那里存储响应的cookie,同一个HTTP对象上的下一个请求将发回它们,向服务器指示您已经登录。