我正在努力Fiddler使用RestSharp使用System.Http.WebProxy
,因此我希望将其设置为localhost:8888
或127.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 ,这是一个错误吗?如何让它工作呢?谢谢!
答案 0 :(得分:6)
这是.Net框架中HTTP客户端库实现中的硬编码行为,反映了Internet Explorer 9之前WinInet的行为。
请参阅Fiddler网站上的Monitor traffic to localhost from IE or .NET解释如何处理它。