Gibt es eine Möglichkeit, alle Anfragen und Antworten von der Webbrowsersteuerung einschließlich asynchroner Anfragen zu erfassen und auszudrucken?Erfassen aller Anfragen und Antworten von der Webbrowsersteuerung?
Antwort
Haben Sie über die Verwendung von Fiddler nachgedacht? Sie haben sogar eine API, die Sie möglicherweise dafür verwenden können.
bearbeiten
Sie können versuchen, die Navigated event oder LoadCompleted event für immer Antwortinformationen verwendet wird. Sie können möglicherweise die Navigating event für Anforderungsinformationen verwenden. Diese Ereignisse können bei asynchronen Anforderungen auftreten, ich bin mir jedoch nicht sicher.
Das Bearbeiten schlägt zurück
Nun, ich habe einige Tests die oben genannten Ereignisse mit, und ich fürchte, ich nichts habe. Die Ereignisse gaben mir nichts, was ich benutzen könnte. Obwohl sie Zugriff auf Webresponse und Webrequest hatten, waren sie bei meinen Tests immer gleich Null.
Ich denke, die traurige Realität ist, dass die Webbrowser-Steuerung nicht dazu gedacht war, so verwendet zu werden, wie Sie es möchten. Es dient nur dazu, Webseiten/Daten bereitzustellen und bietet Ihnen keinen Zugriff auf die Daten. Ich denke, sie haben es als C.Y.A. Maßnahme, um zu verhindern, dass jemand einen Malware-/Spyware-Browser erstellt.
Am besten verbinden Sie den Webbrowser mit Fiddler (oder einer anderen "Sniffing" -Bibliothek).
Eine andere Möglichkeit, dies zu erreichen, ist die Implementierung Ihres eigenen Asynchronous Pluggable Protocol
-Handlers, aber das ist keine einfache Aufgabe. Grundsätzlich sind APPs der Mechanismus, mit dem der Internet Explorer Daten von einer URL über URLMON herunterlädt. Sie können Ihre eigene APP implementieren, die den Standard-Handler von URLMON ersetzt, mit dem Sie alle Anfragen und Antworten steuern können.
Anstatt den Standard-Handler zu ersetzen, könnten Sie auch eine APP implementieren, die sie umschließt. Ein häufig genanntes Beispiel ist die PassThroughAPP von Igor Tandetnik, die zeigt, wie so etwas möglich ist. Sie können auch eine C# -Implementierung in diesem Codeprojekt article finden. Ich glaube, dass die Schnittstelle, an der Sie am meisten interessiert wären, IHttpNegotiate ist, und die OnResponse Methode, die einem Client die Überprüfung der Header Request und Response ermöglicht.
Es gibt einige Probleme mit der PassThroughApp, die zusammen mit einer möglichen Lösung here ausführlich beschrieben werden. Ein paar weitere Ressourcen sind unten enthalten.
http://support.microsoft.com/?id=kb;en-us;303740 http://www.codeproject.com/KB/aspnet/AspxProtocol.aspx
ich irgendwie hatte gehofft, dass es ein Ereignis gab ich im Web-Browser Kontrolle erfassen könnte. –
in Bezug auf 'The Edit Strikes Back' Ergebnis, wollte ich kommentieren dasselbe sagen. Was denken Sie über die Verwendung der WebClient-Klasse, um die Anforderungen zu stellen, dann mithilfe des Browser-Steuerelements, um die Ergebnisse anzuzeigen. Ich hatte nicht viel Zeit zu experimentieren, aber ich denke, das wird mein nächster Schritt sein. –
Das ist machbar, mit dem NavigateToStream (auf Webbrowser) mit OpenRead (auf Webclient), aber ich bin nicht sicher, welche Ereignisse zu verwenden. Klingt nach etwas Spaß beim Testen. –