从C#中的IE lan设置获取代理

时间:2014-02-21 23:59:54

标签: c# networking proxy

我想以程序方式(C#)获取在“IE - > Lan设置”中设置的代理,并使用以下代码stackoverflow question

WebProxy proxy = (WebProxy) WebRequest.DefaultWebProxy;

但问题是我得到以下异常: -

  

无法投射'System.Net.WebRequest.DefaultWebProxy'(其中包含   实际类型'System.Net.WebRequest.WebProxyWrapper')来   'System.Net.WebProxy'

那么如何获取WebProxy对象以便我可以检查代理是否已设置?

编辑:

我得到了它的工作;我只是想知道一个特定的网址是否被绕过,所以我做了这个

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

1 个答案:

答案 0 :(得分:0)

您需要将其投射到WebProxy对象吗?接受代理的许多实现现在采用IWebProxy,而DefaultWebProxy实现IWebProxy

例如:

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

甚至更加谦逊:

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