Login mit Winhttp


  • Hallo liebe Community,

    Ich stehe gerade vor einem Problem wäre sehr dankbar für jede Hilfe.
    Ich versuche zurzeit mir den umgang mit einer Seite zuvereinfachen.
    Das Ziel ist es das Drucken von Guthaben-Karten zu beschleunigen, leider kann ich euch kein Test-Account anbieten
    hoffe aber das ihr mir auch so helfen könnt.

    Link:
    https://autoit.de/www.gtlpins.com

    Code:

    Spoiler anzeigen

    Quelltext vom Ergebnis:


    Spoiler anzeigen

    Wenn ich noch irgendwas ergänzen solle einfach sagen :D

  • Eine mögliche Ursache könnte sein, dass dein Benutzername oder Passwort Zeichen enthält, welche mit der URI Syntax kolidieren. Das kaufmännische UND "&" wäre z.B. solch ein Zeichen, aber auch etliche andere Zeichen können Probleme bereiten. Deswegen solltest du deine variablen Strings wie Benutzername und Passwort zunächst sauber URL encoden.

    Hier findest du z.B. einen Generator um manuell zu prüfen ob das dein Problem löst:
    https://url-encoder.de/

    Besser wäre es aber wenn du dir eine Funktion schreibst die diese Codierung übernimmt. Eine Tabelle der wichtigsten Zeichnersetzungen findest du z.B. hier:
    http://www.user-archiv.de/url-escape-sequenzen.html

    EDIT:
    Außerdem solltest du Debugging betreiben, sprich lass dir auch mal den Quelltext der Loginseite ausgeben und das Ergebnis deiner RegEx Suche. Evtl. liegt ja auch da der Fehler.

    Einmal editiert, zuletzt von misterspeed (14. Dezember 2016 um 19:18)

  • Danke dir für deine Antwort.
    Also Debugging betreibe ich sowieso schon. Dort noch keinen Fehler finden können.

    Habe es nun auch mit einem Encoder versucht Ergebnis bleibt das selbe :(
    Finde ich echt Schade...
    Neuer Versuch:

    Spoiler anzeigen
  • Warum verwendest du eigentlich 2 verschiedene Browserkennungen und 2 Sessions? Sehr wahrscheinlich ändert sich beim erzeugen einer Session auch der Variable Wert beider Strings die du aus dem Quellcode der Loginseite kopierst. Deine "Session keys" aus dem Quellcode sind also vermutlich nicht mehr gültig wenn du dein Login Post mit der zweiten Session absendest.

    Ein URL Encode dieser beiden Strings ist vermutlich nicht notwendig, da diese schon korrekt formatiert sein dürften. Meine Anmerkung bezog sich primär auf deine eigenen Daten, sprich Passwort und Benutzername.

  • Ne bekomme es einfach nicht auf die Reihe...

    Aktueller AutoIT Code:

    Spoiler anzeigen


    Ich weiß einfach nicht woran es liegt was ich falsch mache wieso es nicht klappt:(

  • Ich habs nochmal ein bisschen verändert weil WinHttp das ganze doch nicht selbstständig kodiert.
    Kannst dir ja mal meine Encode-Funktion anschauen, die nutzt den Trick mit einer For-Loop und der Ascii-Tabelle aus statt alle Zeichen per Hand einzutippen.

    Der Code hier unten funktioniert, die HTML Datei die mir ausgespuckt wird sagt das der User Login nicht existiert (steht auch im Source). Ich denke mal wenn du deine Daten eintippst wird das schon funktionieren. :)