Erste Versuche mit WinHTTP, Verständnisprobleme

  • Guten Morgen,

    nachdem ich nun mehrere Stunden bei Onkel Google verbracht habe hoffe ich hier auf einen kleinen Denkanstoss. Ich vermute ich suche in der falschen Richtung.

    Ich möchte mich auf eine Website mit meinem Username und Passwort einloggen. Das klappt ohne Probleme. Nach dem Login möchte ich den Quelltext einer Unterseite auslesen. Diese Unterseite ist eine Merkliste mit Artikeln die ich dort hinzugefügt habe.

    Diese Merkliste würde ich gerne in eine Datei speichern um sie weiter zu verarbeiten.

    Bis zum Login soweit alles kein Problem. Nur die Seite verändert nach dem Login die URLs. Ich bin mir nicht sicher ob es SessionIds sind.

    z.B. : https://www.meineseite.de/merkliste.html wird nach dem Login zu

    https://www.,meineseite.de/61974798815668285678766617929415361842483865,merkzettel.html

    Mittels StringRegExp habe ich mir diese "neue" URL aus dem Quelltext gezogen und in eine .txt geschrieben.

    Wenn ich nun aber den nächsten _WinHttpSimpleRequest absetze , mit der URL aus der .txt bekomme ich ein


    Forbidden

    You don't have permission to access /https://www.meineseite.de/61974798815668285678766617929415361842483865,merkzettel.html on this server.

    Hat jemand vielleicht einen Hinweis für mich , worauf ich achten muss ? Ich möchte keine komplette Lösung , sonst kann ich nichts lernen :P , aber ein Tip wie ich das umsetzen kann wäre super.

    Vielen Dank im vorab.

    Gruß

    tippex

  • Du versuchst eine https Verbindung mit _WinHttpSimpleRequest das ist so nicht korrekt.

    Zitat

    You don't have permission to access /https://www.meineseite.de/61974798815668285678766617929415361842483865,merkzettel.html on this server.

    Der erste Schrägstrich /https://www.me... kommt der nur in der Fehlermeldung vor oder schickst du den mit deiner Anfrage? Ggf. weglassen.

  • Der Slash kommt nur in der Fehlermeldung vor. WinHttpSimpleSSLRequest liefert das gleiche Ergebnis.

    Ich habe mal mein bisheriges Geschreibsel angehangen. Bitte nicht gleich erschlagen, sieht bestimmt gruselig aus für Profis.

    Noch ein Nachtrag: Mit ShellExecute( $merkliste ) wird die gewünschte Seite bei mir im Browser korrekt aufgerufen.

    Gruß

    tippex


    Einmal editiert, zuletzt von tippex (26. Dezember 2018 um 12:07)

  • You don't have permission to access /https://www.meineseite.de/61974798815668285678766617929415361842483865,merkzettel.html on this server.

    Das klingt so, als würdest du in der GET-Anfrage eine komplette URL mit Server übermitteln. Das ist falsch. Du übermittelst an den Host http://www.meineseite.de die Anfrage nach /61974798815668285678766617929415361842483865,merkzettel.html. Sprich, du darfst nur einen Teil der URL angeben. Wenn ich gerade nicht völlig falsch bin.

  • Das klingt so, als würdest du in der GET-Anfrage eine komplette URL mit Server übermitteln. Das ist falsch. Du übermittelst an den Host http://www.meineseite.de die Anfrage nach /61974798815668285678766617929415361842483865,merkzettel.html. Sprich, du darfst nur einen Teil der URL angeben. Wenn ich gerade nicht völlig falsch bin.

    Vielen Dank chesstiger

    Das war der richtige Tipp ! Wenn ich nicht die komplette URL angebe , klappt das einwandfrei, also der gewünschte Quelltext wird in der Datei gespeichert. Logischerweise kommt dann bei meinem ShellExecute ne Fehlermeldung , beides geht natürlich nicht direkt :P .

    Da hatte ich echt nen Brett vorm Kopp.

    Auf jeden Fall komme ich nun erstmal einen Schritt weiter, nochmals vielen Dank dafür.

    Um diesen Vorgang nun z.b. alle 30 Minuten zu wiederholen, packe ich die Abragen dann in eine Schleife ?

    Gruß

    tippex

  • Hallo zusammen,

    es sind wieder ein paar Tage vergangen und ich bin ein gutes Stück voran gekommen. Nachdem ich nun die Hilfe , sowie hier das Forum schon durchstöbert habe , komme ich trotzdem nicht mehr weiter.

    Es hakt glaube ich an den Basics , aber irgendwie will das nicht in meinen Kopf rein ....

    Vielleicht ist ja jemand so nett und kann mir nochmal etwas auf die Sprünge helfen. Ich hänge mal mein bisheriges Geschreibsel an, dort habe ich die Stellen kommentiert wo ich absolut nicht weiterkomme.

    Es sind bestimmt nur Kleinigkeiten , aber für einen Anfänger ist es dann wohl doch zu viel des Guten .

    gruß

    tippex


    Einmal editiert, zuletzt von tippex (31. Dezember 2018 um 13:23)

  • Ich hatte in einem anderen Projekt viel ärger mit den http requests.
    Irgentwann bin ich dann drauf gekommen das die Komplette http kommunikation auf TCP basiert.

    https://de.wikipedia.org/wiki/Hypertext_Transfer_Protocol
    Und dann habe ich meine abfragen Per Tcp versendet und empfangen und dann hats für meine zwecke funktioniert.

    Für einige HTTP requests / oder empfangene daten kann es erforderlich sein die daten binär zu senden/empfangen.
    Ich hoffe das bringt dich weiter.
    MFG Penner