Skocz do zawartości

AdamCziker

Użytkownicy
  • Zawartość

    1
  • Rejestracja

  • Ostatnio

Reputacja

0 Neutralny

O AdamCziker

  • Ranga
    Nowy na forum
  1. Witam wszystkich serdecznie Tworzę program, którego zadaniem jest łączenie się ze stroną tworzoną dynamicznie (jsp) przy użyciu loginu i hasła. Co chcę osiągnąć - chcę, żeby program sprawdzał czy udało się poprawnie zalogować, a jeśli nie, to żeby zwracał komunikat "Błędny login lub hasło". Dla normalnych stron (html) kod działa bez problemu, jednak dla stron z rozszerzeniem jsp program pokazuje, że udało się połączyć (nawet gdy dane są niepoprawne). I tu moje pytanie - czy takie coś jest w ogóle możliwe? Korzystam ze środowiska Borland Delphi 7 Personal z doinstalowanymi komponentami Indy (wersja 10.1.5.0). Kod źródłowy (do wglądu) unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP, IdIOHandler, IdIOHandlerSocket, IdIOHandlerStack, IdSSL, IdSSLOpenSSL, IdCookieManager, StrUtils; type TForm1 = class(TForm) IdHTTP1: TIdHTTP; Edit1: TEdit; Edit2: TEdit; Label1: TLabel; Button1: TButton; Memo1: TMemo; IdSSLIOHandlerSocketOpenSSL1: TIdSSLIOHandlerSocketOpenSSL; IdCookieManager1: TIdCookieManager; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var post: TStringList; poczatek, koniec: integer; aStream: TMemoryStream; HTML, authToken: string; fLogin, fHaslo: string; begin IdHTTP1.HandleRedirects := True; fLogin := Edit1.Text; fHaslo := Edit2.Text; HTML := IdHTTP1.Get('https://e-skok.pl/eskok/login.jsp'); poczatek := Pos('name="token" value="', HTML) + Length('name="token" value="'); koniec := PosEx('"', HTML, poczatek); authToken := copy(HTML, poczatek, koniec - poczatek); post := TStringList.Create; try post.Add('token=' + authToken); post.Add('username=' + fLogin); post.Add('password=' + fHaslo); try IdHTTP1.Request.ContentType:= 'application/json'; HTML:= IdHTTP1.Post('https://e-skok.pl/eskok/login.jsp', post); Memo1.Text:= HTML; Label1.Caption := 'YES'; except if IdHTTP1.ResponseCode = 401 then begin ShowMessage('Nieprawidłowy login lub hasło.'); Label1.Caption := 'NO'; end else Label1.Caption := ':)'; end; finally post.Free; end; end; end. Z góry dziękuję za zainteresowanie tematem i pomoc
×