.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

posted @ 2005-12-20 21:05  margiex  阅读(511)  评论(0编辑  收藏  举报