.net - the - vb net webrequest post




Rufen Sie HTTP-Anforderungen und-Antworten ab, die mithilfe von HttpWebRequest/HttpWebResponse in Fiddler angezeigt werden (2)

Gibt es eine Möglichkeit, wie ich Fiddler einbinden kann, um Anfragen und Antworten zu erfassen, die mit .NET HttpWebRequest und HttpWebResponse gemacht wurden?


Die Fiddler FAQ gibt die Antwort darauf.

Sie leiten Ihren HTTP-Datenverkehr im Wesentlichen über Fiddler weiter (dh verwenden Sie Fiddler als Proxy).

Hier sind einige Links, die helfen werden:
Fiddler Web Debugging - Konfigurieren von Clients

Was wiederum hier verlinkt:
Entfernen Sie die Last von Benutzern mit automatischer Konfiguration in .NET

Sie können dies über einige Konfigurationseinstellungen in der Datei web.config (für eine ASP.NET-Anwendung) wie folgt erreichen:

<system.net>
  <defaultProxy>
    <proxy
      proxyaddress="http://[your proxy address and port number]"
      bypassonlocal="false"
    />
  </defaultProxy>
</system.net>

here ausführliche <defaultProxy> Einstellung <defaultProxy> .

Alternativ können Sie ein WebProxy-Objekt in Ihrem Code verwenden, beispielsweise:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("[ultimate destination of your request]");
WebProxy myproxy = new WebProxy("[your proxy address]", false);
request.Proxy = myproxy;
request.Method = "GET";
HttpWebResponse response = (HttpWebResponse) request.GetResponse();

here ausführliche Informationen zur WebProxy-Klasse.

Beachten Sie auch den wichtigen "Vorbehalt", der in der Fiddler-FAQ erwähnt wird:

Warum wird der Datenverkehr nicht an http: // localhost oder http://127.0.0.1 gesendet?
IE7 und das .NET Framework sind hardcodiert, um Anfragen für Localhost nicht über Proxies zu senden, und als Proxy empfängt Fiddler keinen solchen Datenverkehr.

Die Problemumgehung besteht darin, Ihren Computernamen anstelle von Localhost oder 127.0.0.1 als Hostnamen zu verwenden. Anstatt beispielsweise http://localhost:8081/mytestpage.aspx , besuchen http://localhost:8081/mytestpage.aspx stattdessen http://machinename:8081/mytestpage.aspx .

... oder wenn Sie Fiddler v2.1.8 oder höher verwenden, verwenden Sie einfach http: //ipv4.fiddler , um localhost auf dem IPv4-Adapter zu treffen, oder verwenden Sie http: //ipv6.fiddler , um localhost auf dem IPv6-Adapter zu treffen . Dies funktioniert besonders gut mit dem Visual Studio-Test-Webserver (Codename: Cassini), da der Testserver nur den IPv4-Loopback-Adapter überwacht.

Zuletzt könnten Sie Ihre Regeldatei wie folgt anpassen:

    static function OnBeforeRequest(oSession:Fiddler.Session)
    {
      if (oSession.HostnameIs("MYAPP"))
      {
        oSession.host = "127.0.0.1:8081";
      }
    }  

... und dann einfach http: // myapp drücken , was als Alias ​​für 127.0.0.1:8081 fungiert.


Wenn Sie das nicht können, ist Wireshark ein ähnliches Tool, das auf der Netzwerkhardwarerebene funktioniert, sodass es Netzwerkverkehr von jeder Anwendung erfassen kann.

Wireshark ist ein bisschen komplexer als Fiddler, und allgemeiner, aber es ist ein großartiges Werkzeug in deiner Toolbox und es lohnt sich, ein bisschen Zeit darin zu untersuchen.





httpwebresponse