delphi发布'非法访问'错误

时间:2010-05-20 22:57:22

标签: delphi post indy idhttp

我正在使用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;

1 个答案:

答案 0 :(得分:1)

服务器几乎肯定会通过返回带有Login.asp请求响应的 cookie 来跟踪您是否已登录。您需要将该cookie与任何后续请求一起发回。要跟踪cookie,请创建一个TIdCookieManager对象并将其分配给HTTP对象的CookieManager属性。第一个请求将在那里存储响应的cookie,同一个HTTP对象上的下一个请求将发回它们,向服务器指示您已经登录。