2012-09-11 69 views
6

我試圖讓Fiddler工作,RestSharp女巫使用System.Http.WebProxy,所以我希望它被設置爲localhost:8888127.0.0.1:8888如何使System.Net.WebProxy不繞過本地URL?

下面是代碼:

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); 

輸出:真正

MSDN聲明如下:

IsBypassed方法用於確定在訪問Internet資源時是否繞過代理服務器 服務器。

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

IsBypassed回報真正遇有下列條件:

  • 如果BypassProxyOnLocal是主機是本地URI。本地請求 由URI中缺少句點(。)標識,如 「http:// webserver /」中所示。

  • 如果主機與BypassList中的正則表達式匹配。

  • 如果地址爲空。

所有其他條件返回false

我不明白,爲什麼在我的情況下,它返回,這是一個錯誤?如何使它工作呢?謝謝!

回答

6

這是硬編碼的行爲在.NET Framework中的HTTP客戶端庫的實現,鏡像的WinInet的行爲之前的Internet Explorer 9

Monitor traffic to localhost from IE or .NET從提琴手網站介紹瞭如何處理它。

+0

作爲一個輕微修改什麼提琴手建議:如果你使用'oSession.hostname =「localhost」的'那麼它會保持,而不是將其更改爲8081 –

+0

您的端口號(注oSession.hostname'的'的使用,而不是'oSession.host') –