使用DefaultWebProxy获取ie的默认代理
本文关键字:默认 代理 ie DefaultWebProxy 获取 使用 | 更新日期: 2023-09-27 18:18:03
我已经阅读了几乎所有我能找到的文档,但我还没有找到一个简单的工作示例,如何使用DefaultWebProxy()
获得IE的默认代理设置。
这段代码似乎可以编译和工作,但我如何继续并获得代理URI作为字符串?
HttpWebRequest webRequest =
(HttpWebRequest)HttpWebRequest.Create("http://www.google.com");
if (WebRequest.DefaultWebProxy != null)
{
webRequest.Proxy = WebRequest.DefaultWebProxy;
}
编辑:自从提交这个问题以来,我发现可以为不同的目的地设置一个或多个代理,或者绕过代理(可能针对本地内部网目的地)。这就是为什么需要为GetProxy()
指定一个URI的原因。它需要知道要为哪个目的地获取代理。如果在Internet选项中设置了"自动检测设置",浏览器将在本地域中查找PAC文件。PAC文件包含一个Javascript函数,用于确定给定目的地的代理地址。
WebRequest.DefaultWebProxy
实现IWebProxy
接口。您可以使用GetProxy
方法来获取代理的URI:
var uri = WebRequest.DefaultWebProxy.GetProxy(new Uri("http://www.google.com"));
对评论的回应:
你需要将uri传递给GetProxy
,因为这就是微软实现它的方式…
说真的,我相信这是因为你可以配置浏览器绕过代理的一些地址。如果您传递其中一个被绕过的地址,您可能会得到不同的结果。