【问题标题】:delphi post 'illegal access' errordelphi发布“非法访问”错误
【发布时间】:2010-05-20 22:57:22
【问题描述】:

我正在使用 Indy 中的 IdHttp 模块制作一些简单的 Delphi 软件。我想访问this page,通过IdHttp的post函数打开这个网页。

首先我必须登录,(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;

【问题讨论】:

    标签: delphi post indy idhttp


    【解决方案1】:

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

    【讨论】:

    • 如果您使用 Indy 10,请记住一点,TIdCookieManager 及其支持类目前正在进行重大重写,因此 cookie 是否真的有 50-50 的机会工作正常。
    • 非常感谢,但我对 delphi 很陌生,也许你能给我看一些示例吗?如果这么多赞赏!再次感谢!
    猜你喜欢
    • 2013-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多