in

Useragent / Header in Webbrowser verändern

Letzter Beitrag 09-17-2007 14:43 von klausen. 4 Antworten.
Seite 1 von 1 (5 Treffer)
Beiträge sortieren: Zurück Weiter
  • 09-11-2007 22:39

    • klausen
    • Top 500 Mitwirkender
    • Registriert am 09-11-2007
    • Beiträge 5

    Useragent / Header in Webbrowser verändern

    Hallo zusammen,

    ich hoffe es kann mir jemand helfen, ich habe mir bereits einen Wolf gesucht über Tage, und nirgendwo ein 100% Beispiel gefunden, das mein Problem löst.

    Ich möchte in Visual Basic 2005 dem Webbrowser-Control vorgeben, mit welchem Useragent / Header allgemein er sich ausgeben soll.

    Die Angaben sollen bei jedem Navigate veränderbar sein.

    Ich hab einfach keine Ahnung, wie das genau funktioniert. In der MSDN steht etwas, wenn ich das z.B. kopiere, kommen direkt Fehler im Code etc.

    Ich bräuchte einfach mal ein Beispiel.

    Zum Beispiel, angenommen mein Webbrowser heißt webbrowser1, wie muss ich in diesen Code ewas einbinden, um den Useragent / Header bei/vor/während navigate selbst bestimmen zu können?

    Private Sub Navigate()
    If Not browserUrl.StartsWith("http://") Then
    browserUrl = "http://" & browserUrl()
    End If
    Try
    webBrowser1.Navigate(New Uri(browserUrl))
    Catch
    MessageBox.Show("Invalid Url.", Me.Text, MessageBoxButtons.OK, MessageBoxIcon.Error)
    End Try
    End Sub

    Die Navigate Methode hat ja mehrere Überladungen. Man kann da ja anscheinenend auch zusätzliche Header etc angeben, bei dem hier:

    WebBrowser1.Navigate(URL as String, target as String, PostData as Byte[], AdditionalHeader as String)

    Da gibts ein Beispiel:

    WebBrowser1.Navigate(URL, "_self", PostData, "User-Agent: MyApp1.1" + Chr(10) + Chr(13))

    So, aber was ist jetzt z.B. diese Postdata?

    Was ich bräuchte, wenn jemand einfach so nett ist, ist:

    An einem zusammenhängendem Stück die Imports, Deklarationen, ein Beispiel, dass z.B. eine Seite mit dem Useragent "test" korrekt aufruft.

    Es wäre einfach wirklich sehr, sehr freundlich, wenn mir jemand qualifiziert helfen könnte!

    Falls es hier niemanden geben sollte, der mir "einen kompletten tollen fertigen Code" gönnt, aber das Wissen hat: dann bitte gib mir Tipps! Ich versuche es dann zeitnah umzusetzen. Aber bisher bin ich immer an irgendwelchen Sachen gescheitert, vom Umwandeln in Byte über property Syntaxfehler etc. Ein minimales, einfach nur funktionierendes Beispiel wäre deshalb einfach nur traumhaft! Auch gerne per Mail, wenn so etwas hier im Forum nicht stehen soll/darf(?). Im Internet habe ich wie gesagt kein einziges Beispiel finden können, dass in vb.net geschrieben ist und mit einem Beispielaufruf funktioniert.

    Vielen Dank schonmal, an alle, die sich die Mühe machen, zu antworten!

    Grüße

    Klaus

    Sorry, irgendwie will der Code Tag nicht...

    • IP-Adresse ist Registriert
  • 09-12-2007 9:40 Antwort zu

    AW: Useragent / Header in Webbrowser verändern

    Hier mal ein Code wies funktionieren würde mit dem Agent Test. Leider verstehe ich nicht genau was du damit bezweckst. Warum willst du den Header selbst angeben?

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    Dim header As String = "User-Agent: test"

    Dim encoding As New System.Text.ASCIIEncoding

    WebBrowser1.Navigate("http://www.google.de", "_self", encoding.GetBytes(header), Nothing)

    End Sub

    • IP-Adresse ist Registriert
  • 09-13-2007 15:58 Antwort zu

    • klausen
    • Top 500 Mitwirkender
    • Registriert am 09-11-2007
    • Beiträge 5

    AW: Useragent / Header in Webbrowser verändern

    Hallo Armin,

    vielen lieben Dank für deine Hilfe! Das Encoding hat mir sehr geholfen, und das Ändern des Useragents klappt nach Implementierung wunderbar - allerdings mit einem Haken, siehe weiter unten.

    Nun ja, ich möchte in meine Anwendung, respektive in meinem Webbrowser das integrieren, was mit dem User Agent Switcher Plugin für Firefox (https://addons.mozilla.org/de/firefox/addon/59), gemacht werden kann. 

    Im Endeffekt will ich auch nicht nur den Useragent-String verändern, sondern den kompletten Header individuell gestalten können. Aber ich brauchte nur mal ein Beispiel, für den Userstring, die anderen Sachen werde ich mir erarbeiten so weit wie es geht.

    Nun das Problem:

    Dadurch, dass ich bei der Navigate-Funktion den Header ändere, ist die HTTP Request-Methode nicht mehr GET, sondern jetzt POST. Viele Seiten, google, spiegel etc., akzeptieren das aber nicht.

    Es muss aber auch möglich sein, den Useragent zu ändern, aber die Methode auf GET zu lassen. Denn genauso geht das auch bei dem Firefox Plugin...

    Hat jemand eine Idee, wie man das für das Webbrowser Control machen könnte?

    Liegt es eventuell daran, dass ich den Header nicht in der Navigate-Methode festlegen darf, sondern in den Webklassen, also HttpRequest , Header etc.? Wenn ja, wie stell ich das am besten an? Bin euch für jeden Tipp oder Codeschnispel sehr dankbar!!

    Vielen Dank im Voraus!

    Grüße

    Klausen  

     

    • IP-Adresse ist Registriert
  • 09-13-2007 17:09 Antwort zu

    AW: Useragent / Header in Webbrowser verändern

    Ich habe gerade was gefunden:

    PostData enthält die Daten, die bei einer HTTP-Post-Botschaft an den Server gesendet werden. Hat der Parameter den Wert NULL, generiert Navigate eine HTTP-Get-Botschaft. PostData wird ignoriert, wenn der Parameter URL keine HTTP-URL enthält.

    D.h. wenn du den dritten Parameter der Navigate Methode mit nothing füllst kannst du ein get senden!

    • IP-Adresse ist Registriert
  • 09-17-2007 14:43 Antwort zu

    • klausen
    • Top 500 Mitwirkender
    • Registriert am 09-11-2007
    • Beiträge 5

    AW: Useragent / Header in Webbrowser verändern

    Super, klappt tadellos, vielen Dank für deinen Support!
    • IP-Adresse ist Registriert
Seite 1 von 1 (5 Treffer)