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

时间:2012-09-11 22:07:19

标签: c# .net proxy restsharp webproxy

我正在努力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);

输出: true

MSDN声明如下:

  

IsBypassed 方法用于确定是否绕过代理   访问Internet资源时的服务器。

     

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

     在以下任何情况下,

IsBypassed 会返回 true

     
      
  • 如果BypassProxyOnLocal true host 是本地URI。本地请求   通过URI中缺少句点(。)来识别,如   的 “http:// Web服务器/”。

  •   
  • 如果主机与BypassList中的正则表达式匹配。

  •   
  • 如果地址为空。

  •   
     

所有其他条件返回 false

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

1 个答案:

答案 0 :(得分:6)

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

请参阅Fiddler网站上的Monitor traffic to localhost from IE or .NET解释如何处理它。