3

設定したプロキシを使用するために、C# .NET からローカル アドレス (localhost:3000) に対して行っている HTTP 呼び出しを取得しようとしています (したがって、フィドラーを使用できます)。以下の WebProxy アプローチを使用すると、ターゲット URL をローカル以外のアドレスに向ける場合に機能しますが、それをローカル Web サーバー (localhost:3000) に向ける必要があります。これを行うと、リクエストは送信されません。プロキシ経由。

「proxyObject.BypassProxyOnLocal = false」を含めました。これでうまくいくはずですよね?ローカル アドレスをターゲットとする HTTP 呼び出しのために、要求が WebProxy を通過するように強制する方法に関する提案はありますか?

    WebProxy proxyObject = new WebProxy("http://localhost:8888/", false);
    proxyObject.Credentials = new NetworkCredential(); 
    proxyObject.BypassProxyOnLocal = false;
    WebRequest.DefaultWebProxy = proxyObject;

    var request = (HttpWebRequest)WebRequest.Create(targetUri);

    // I also included this line as a double check
    request.Proxy = proxyObject;

ただし、次のように、後続の呼び出しはプロキシを経由しません。

 var res = (HttpWebResponse)req.GetResponse();

ありがとう

4

2 に答える 2

8

私は単に localhost に「ドット」を追加するだけでこれを回避できるので、「localhost」にアクセスする代わりに、「localhost」にアクセスしようとします。(ホスト名の末尾のドットに注意してください)

クレジットが必要な場合のクレジット: このスレッドからこの異常なヒントを得ましたhttp://www.west-wind.com/weblog/posts/2009/Jan/14/Monitoring-HTTP-Output-with-Fiddler-in-NET- HTTP クライアントと WCF プロキシ #596591

正常に動作します!

于 2011-08-18T05:57:07.880 に答える
5

https://docs.telerik.com/fiddler/observe-traffic/troubleshooting/notraffictolocalhostの説明を参照してください

Internet Explorer と .NET Framework は、プロキシ経由で Localhost への要求を送信しないようにハードコードされており、プロキシとして、Fiddler はそのようなトラフィックを受信しません。

最も簡単な回避策は、Localhost または 127.0.0.1 の代わりに、マシン名をホスト名として使用することです。たとえば、http://localhost:8081/mytestpage.aspx ではなく、http://machinename:8081/mytestpage.aspx にアクセスします。

于 2011-04-29T11:49:20.933 に答える