Webbrowser zu Stream navigieren

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von programmer71.

    Webbrowser zu Stream navigieren

    Folgende Situation:
    Ich nutze einen HTTPWebRequest, um einen POST-Befehl an eine Webseite zu schicken. Der Sinn ist, dass ich damit den Klick eines Buttons simulieren möchte, der dann eine andere Seite lädt. Der POST-Befehl funktioniert auch, und ich bekomme eine Antwort von der Webseite, die ich wie folgt entgegennehme:

    VB.NET-Quellcode

    1. Dim resp As System.Net.WebResponse = req.GetResponse() 'req ist mein HTTPWebRequest

    Diese Antwort enthält jetzt die neue Seite, die geladen wird, wenn man auf der Webseite auf den Button drückt. Diese würde ich gerne in einem WebBrowser-Control darstellen. Also lasse ich den WebBrowser den Stream laden:

    VB.NET-Quellcode

    1. WebBrowser1.DocumentStream = resp.GetResponseStream()


    Da sieht man dann das Problem: Da in dem geladenen Stream/HTML-Dokument alle Links relativ angegeben sind, ist die Seite nicht funktionsfähig, da kein Link funktioniert und keine Bilder und CSS Dateien geladen werden können. Gibt es eine Möglichkeit, das zu ändern? (Ohne alle Links durch absolute zu ersetzen :/). Also irgendwie müsste man dem WebBrowser seinen Kontext, im Sinne der URL der Webseite, zuweisen können.

    Skybird schrieb:

    Das sind ja Ubisoftmethoden hier !

    Nein, der WebBrowser war vorher schon auf der URL, also kein neuer WebBrowser. Aber in der Doku zum Setzen des DocumentStream steht, dass vorher erst about:blank aufgerufen wird. Dadurch hat der WebBrowser dann halt keine Ahnung mehr, worauf sich die relativen URLs beziehen sollen, denke ich.

    Bezüglich Screenshot: Habe die Version nicht mehr, da ich mittlerweile eine ganz andere Möglichkeit nutze. Aber es war halt einfach eine weiße Webseite mit schwarzem Text in Standardschriftart und komplett ohne Bilder.

    Skybird schrieb:

    Das sind ja Ubisoftmethoden hier !