2014-02-21 23 views
0

我想progrmatically(C#)獲得了在設置代理「IE瀏覽器 - >局域網設置」,然後我用下面的代碼從這個stackoverflow question從IE局域網設置獲取代理在C#

WebProxy proxy = (WebProxy) WebRequest.DefaultWebProxy; 

但問題是,我得到以下異常: -

無法施展「System.Net.WebRequest.DefaultWebProxy」(其中有一個 實際類型「System.Net.WebRequest.WebProxyWrapper」),以 「系統。 Net.WebProxy'

那麼如何獲取WebProxy對象,以便我可以檢查代理是否已設置?

編輯:

我得到它的工作;我只是知道,如果一個特定的URL被bypasssed的,所以才這樣做

Uri rpkgURI = new Uri("%url%", UriKind.RelativeOrAbsolute); 
IWebProxy webProxy = WebRequest.GetSystemWebProxy(); 
bool isBypass; 
if (webProxy != null) 
{ 
isBypass = webProxy.IsBypassed(rpkgURI); 
} 
else 
{ 
isBypass = true; 
} 

回答

0

你需要將其轉換爲WebProxy對象?接受代理的許多實現現在採用IWebProxy,而DefaultWebProxy實現IWebProxy

例如:

IWebProxy proxy2 = WebRequest.DefaultWebProxy; 
WebClient wc = new WebClient(); 
wc.Proxy = proxy2; 

甚至更​​多succintly:

WebClient wc = new WebClient(); 
wc.Proxy = WebRequest.DefaultWebProxy;