0 0 Stimmen

Automatisch auf einer HTTPS-Seite anmelden über Delphi/Lazarus

Frage von Gast | 09.07.2018 um 16:53 Uhr

Hallo Zusammen,

wie kann ich mich über ein Lazarus/Delphi-Programm automatisch auf einer HTTPS-Seite anmelden und diese dann anschließend automatisch auslesen?

Was brauche ich dazu?

Wer kann mir mit dem code helfen?

Vielen Dank vorab!

Beste Grüße

mbulm1

AntwortenPositivNegativDatumStimmen

Delphianer

Profil anzeigen | Nachricht
Avatar
2Beste Antwort
2 Stimmen

Im Grund genommen kannst du ähnlich vorgehen, wie beim Auslesen des HTMLs einer Website. Da du HTTPS unterstützen möchtest, brauchst du noch die entsprechenden SSL-Bibliotheken. Das sind ssleay32.dll und libeay32.dll (für ein Win 32 Programm), die im Ordner der Anwendung liegen sollten.

Um den Login zu simulieren, musst du das Absenden des Login-Formulars nachbauen. Dies geschieht normalerweise über einen POST-Request, der dann etwa so aussehen könnte:

uses fphttpclient;
 
procedure DoLogin;
var
  AHTTPClient: TFPHTTPClient;
  APostValues: TStringList;
  AUrl, AResult: string;
begin
  AUrl := 'https://www.example.com/login.php';

  AHTTPClient := TFPHTTPClient.Create(nil);
  try
    AHTTPClient.AllowRedirect := True;
    APostValues := TStringList.Create;
    try
      APostValues.Add('name=MeinName');
      APostValues.Add('password=MeinPasswort');
      try
        AResult := AHTTPClient.SimpleFormPost(AUrl, APostValues);
        ShowMessage(AResult);
      except
        on E: exception do ShowMessage(E.Message);
      end;
    finally
      APostValues.Free;
    end;
  finally
    AHTTPClient.Free;
  end;
end; 

Als Werte verwenden wir hier name = MeinName und password = MeinPasswort. Hier müsstest du noch name und password durch die richtigen Namen der Formularfelder ersetzen und statt MeinName und MeinPasswort die richtigen Login-Daten setzen.
09.07.2018 um 17:07 Uhr

AntwortenPositiv Negativ
00 Stimmen

Hallo "Delphianer" - das liest sich schon mal sehr gut - besten Dank! Kurze Nachfrage: Was - wenn ich nicht weiß - wie die Formularfelder heißen - kann ich das auch irgendwie herausfinden? Sorry bitte für meine Unkenntnis in diesem Bereich! Wo kann man noch was nachlesen über die TFPHTTPClient-Komponente und event. Beispiele finden? Danke vorab ganz herzlich!

Gruß mbulm1
09.07.2018 um 17:26 Uhr

Positiv Negativ

Delphianer

Profil anzeigen | Nachricht
Avatar
00 Stimmen

Klar, dafür musst du einfach in den Quelltext schauen und nachsehen wie die Felder heißen, die man beim Login ausfüllt.

Ich würde einfach mal in die Dokumentation von Lazarus / FreePascal schauen, ansonsten ist es hilfreich im Code einfach über die Vervollständigen-Funktion zu schauen, welche Funktionen und Eigenschaften der HTTP-Client so anbietet.
09.07.2018 um 19:08 Uhr

Positiv Negativ
Antworten

Ähnliche Themen

Anmeldung
Frage | 1 Antwort

Wichtiger Hinweis

Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.

Jetzt mitmachen

Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.