0

Indy の IdHttp モジュールを使用して、簡単な Delphi ソフトウェアを作成しています。IdHttp の post 関数を使用してこの Web ページを開くことで、このページにアクセスしたいと考えています。

最初に ( http://user.buddybuddy.co.kr/Login/Login.aspで) ログインする必要があるため、ログインしましたが、Web ページにログインした後、別のログイン ページが表示されます。しかし、( 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;
4

1 に答える 1

1

サーバーは、Login.asp の要求からの応答と共にCookieを返すことによって、ユーザーがログインしているかどうかをほぼ確実に追跡します。後続のリクエストでその Cookie を送り返す必要があります。Cookie を追跡するには、TIdCookieManagerオブジェクトを作成し、それを HTTP オブジェクトのCookieManagerプロパティに割り当てます。最初のリクエストはそこにレスポンスの Cookie を保存し、同じ HTTP オブジェクトに対する次のリクエストはそれらを送り返し、すでにログインしていることをサーバーに示します。

于 2010-05-21T00:34:01.500 に答える