如何使System.Net.WebProxy不绕过本地URL?

Res*_*uta 7 .net c# proxy webproxy restsharp

我试图让Fiddler使用RestSharp女巫使用System.Http.WebProxy,所以我希望它被设置为localhost:8888127.0.0.1:8888

这是代码:

    var webProxy = new WebProxy(new Uri("http://127.0.0.1:8888"))
    {
        BypassProxyOnLocal = false
    };

    var bypassed = webProxy.IsBypassed(new Uri("http://127.0.0.1"));
    Console.WriteLine(bypassed);
Run Code Online (Sandbox Code Playgroud)

输出:true

MSDN声明如下:

IsBypassed方法用于确定是否要访问因特网资源时绕过代理服务器.

BypassProxyOnLocal和BypassList属性控制IsBypassed方法的返回值.

在以下任何条件下,IsBypassed都返回true:

  • 如果BypassProxyOnLocal为truehost是本地URI.本地请求通过URI中缺少句点(.)来标识,如"http:// webserver /"中所示.

  • 如果host匹配BypassList中的正则表达式.

  • 如果Address为null.

所有其他条件都返回false.

我不明白为什么在我的情况下它返回true,这是一个错误吗?如何让它工作呢?谢谢!

Jef*_*tin 6

这是.Net框架中HTTP客户端库实现中的硬编码行为,反映了Internet Explorer 9之前WinInet的行为.

请参阅Fiddler网站上的IE或.NET监控到localhost的流量说明如何处理它.