4

我已经阅读了几乎所有我能找到的文档,但我还没有找到一个简单的工作示例,说明如何使用DefaultWebProxy().

这段代码似乎可以编译和工作,但我该如何继续获取代理 URI 作为字符串?

HttpWebRequest webRequest = 
    (HttpWebRequest)HttpWebRequest.Create("http://www.google.com");

if (WebRequest.DefaultWebProxy != null)
{
    webRequest.Proxy = WebRequest.DefaultWebProxy;
}

编辑:

自从提交这个问题以来,我发现可以为不同的目的地设置一个或多个代理或绕过(也许对于本地 Intranet 目的地)。这就是为什么您需要为GetProxy(). 它需要知道要为哪个目的地获取代理。如果在 Internet 选项中设置了“自动检测设置”,浏览器将在您的本地域中查找 PAC 文件。PAC 文件包含一个 Javascript 函数,用于确定给定目的地的代理地址。

4

1 回答 1

5

WebRequest.DefaultWebProxy实现IWebProxy接口。您可以使用该GetProxy方法获取代理的 URI:

var uri = WebRequest.DefaultWebProxy.GetProxy(new Uri("http://www.google.com"));

回复评论:

您需要将 uri 传递给,GetProxy因为这就是 Microsoft 实现它的方式......

说真的,我相信这是因为您可以将浏览器配置为绕过某些地址的代理。如果您传递其中一个绕过的地址,您可能会得到不同的结果。

于 2013-06-13T03:59:05.073 回答