我如何代理我的连接?我想要 3 个不会通过代理的默认 HttpWebRequest objs,而另外 3 个会通过代理。我做 WebRequestObject.Proxy = myProxy; 在我想使用代理的对象上,对我没有的 3 个 objs 什么都不做?对象也将以未知的顺序初始化,所以我可能有 2 个不是,2 个被代理,第 3 个不是,最后一个是。它只是简单地写.Proxy = myProxy吗?
user34537
问问题
9339 次
3 回答
10
对于需要代理的请求,是的,这可以正常工作:
request.Proxy = myProxy;
对于希望绕过代理的请求,请使用:
request.Proxy = System.Net.GlobalProxySelection.GetEmptyWebProxy;
如果你想使用 IE 的默认代理(或者如果你在 app/web.config 中设置了默认代理),只需不要设置代理,或者将其设置为 null:
request.Proxy = null;
于 2009-04-14T21:04:16.317 回答
3
System.Net.GlobalProxySelection.GetEmptyWebProxy 现在已弃用。
我最终遇到了这种情况
private static void SetProxy(HttpWebRequest request)
{
if (AppConstants.UseProxyCredentials)
{
//request.Proxy = available in System.Net configuration settings
request.Proxy.Credentials = Credentials.GetProxyCredentials();
}
else
{
request.Proxy = null;
//request.Proxy.Credentials = n/a
}
}
使用 web.config 中的代理详细信息:
<system.net>
<defaultProxy>
<proxy
autoDetect="False"
bypassonlocal="True"
scriptLocation="http://www.proxyscript..."
proxyaddress="http://proxyurl..." />
</defaultProxy>
</system.net>
<system.web>
于 2009-07-17T02:14:36.277 回答
2
是的,您将为要代理的请求中的每个属性创建一个新的代理对象,并将其留空以供您完成。对于您未设置的那些,它们将在您的 app.config 中使用 system.net 配置中的默认代理值。
于 2009-04-14T20:48:16.183 回答