Einzelnen Beitrag anzeigen

Benutzerbild von geskill
geskill

Registriert seit: 17. Feb 2007
Ort: NRW
420 Beiträge
 
Delphi 2010 Professional
 
#4

AW: idHTTP abfrage

  Alt 9. Dez 2010, 18:24
Hi,
also dann muss ich ein bisschen weiter ausholen. Am besten ist es wenn man sich erstmal Wireshark besorgt, damit kann man dann den kompletten Netzwerkverkehr analysieren und du erhältst dann genau mit welchen Werten der Server antwortet. Also einfach mal manuell mit dem Browser einloggen und Wireshark mitloggen lassen.

Des Weiteren empfehle ich dir auch wenn du kein FireFox benutzt diesen zu installieren und die Web Developer Erweiterung zu installieren, damit kannst du die HTML Formularfelder auslesen ohne das man im Quellcode wühlen muss.

Nun zum "AllowCookies" damit kann man sagen, das Indy automatisch weiterleiten soll (klappt aber auch nicht immer ), du kannst dies nach deinen Wünschen entsprechend aktivieren/deaktivieren.

So nun zu deinem Code, was ich da sehe ist ganz schlechter Stil!

Hier mal ein Muster wie sowas bei mir im Groben aufgebaut ist:
Delphi-Quellcode:
  with TIdHTTP.Create(nil) do
    try
      // ggf. Proxy, gZip, SOCKS, CookieManager, SSL ...

      Request.ContentType:='application/x-www-form-urlencoded';
      // ggf. weitere Werte, andere Browserkennung usw.

      Params := TStringStream.Create(''); // bei ISO
      // für UTF-8 Params := TStringStream.Create('', CP_UTF8);
      ReplyData := TStringStream.Create('');
      try
        // Ich bezweifle stark, dass es ein Eingabefeld mit diesem Namen gibt!
        // Bei nicht UTF-8 Webseiten ist es im Regelfall so, dass man Sonderzeichen escapen muss!
        // Dort hilft HTTPEncode() aus der Unit "HTTPApp"
        // PostData.WriteString('/Login user='+user+'&password='+passwort');
        try
          Post('http:', PostData, ReplyData);
        except
           // Fehlerbehandlung
        end;
      finally
        ReplyData.Free;
        Params.Free;
      end;
    finally
      Free;
    end;
Ob oder ob man nicht angemeldet ist würde ich auch anders prüfen! Wenn man Angemeldet ist gibt es meisten einen einmaligen Logout-Link, den würde ich suchen. Früher oder später wirst du aber um RegEx nicht herumkommen und solltest dich da mal zu einarbeiten.
Sebastian
  Mit Zitat antworten Zitat