.net web service and http proxy FAQ
示例代码如下:
WebProxy proxy = new WebProxy("XXX.XXX.XXX.XXx", port);
proxy.Credentials = new NetworkCredential("user", "pass", "domain");
//如果是域用户认证,则可以直接用:CredentialCaches.DefaultCredential;
// Prepare web request...
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create("http://www.google.com");
myRequest.Method = "GET";
myRequest.Proxy = proxyIe;
说明
1. 建立一个WebProxy,指定代理IP及端口, 设定其Credentials, 即登录代理服务器的用户/密码;
2. 设置WebRequest的proxy属性
如果是WebService,也具有Proxy属性,设置相同.
上面的代码在非asp.net WEB程序中有效,但web程序还需要在web.config添加如下项:
<system.net>
<defaultProxy>
<proxy
usesystemdefault = "false"
proxyaddress="http://XXX.XXX.XXX:port"
bypassonlocal="true"
/>
</defaultProxy>
</system.net>
在.net 2.0 中有auto proxy detection机制,可以自动获取代理设置信息, 并根据一定顺序尝试所有可能的代理,优点是不需要在代码中设置某个代理的信息, 并且可以取到最新的代理设置,无须重启应用程序. 具体请参见下面的引用地址.
未解决的问题:
象QQ一样允许代理设置为IE设置,即不需要再次输入代理服务器的信息, 直接使用IE中的设置, 还未找到办法.
ref:
http://msdn.microsoft.com/msdnmag/issues/05/08/AutomaticProxyDetection/default.aspx
http://support.microsoft.com/default.aspx?scid=kb;en-us;330221