C# 设置http代理访问

 

 

开始写Blog读取工具时一直是直接访问,访问方式也比较简单:

 

 

 

WebRequest _HWR = WebRequest.CreateDefault(new System.Uri(URL)); WebResponse _HRS = _HWR.GetResponse() ; Stream ReceiveStream = _HRS.GetResponseStream(); 但是最近打开工程一看,代码运行不正常,调试了一下,原来客户端代理被ITS封掉了 ,只得去查找设置代理访问的方法,原来代码很简单,只需要加入下面代码即可。

 

 

 

WebProxy _WP = new WebProxy(ProxyName,ProxyPort);             _WP.BypassProxyOnLocal = true;             ICredentials credentials = new NetworkCredential(UserName,UserKey,DomainName);             _WP.Credentials = credentials;             WebRequest _HWR = WebRequest.CreateDefault(new System.Uri(URL));             _HWR.Proxy = _WP;             WebResponse _HRS = _HWR.GetResponse() ; 当然,MSDN上对于_HWR.Proxy = _WP;还有另外一个使用方式 GlobalProxySelection.Select = _WP;其实也就是设置全局的代理服务,不需要再一一设置,抓取页面数据就比较简单了。

 

 

 

Encoding encode = System.Text.Encoding.Default;             StreamReader sr = new StreamReader( ReceiveStream, encode );                          string HTMLContent = ;                          Char[] read = new Char[256];             int count = sr.Read( read, 0, 256 );             while (count > 0)               {                 String str = new String(read, 0, count);                 HTMLContent += str;                 count = sr.Read(read, 0, 256);             }

 

OK,这样就完成了代码设置我们的代理,直接通过程序来访问IE内容了~~

 

 

 

----------------

 

全部代码:

 

 

 

 

 

 

 

private string LoadHTML(string ProxyName,int ProxyPort,string UserName,string UserKey,             string DomainName,string URL)          {             //读取HTML内容             WebProxy _WP = new WebProxy(ProxyName,ProxyPort);             _WP.BypassProxyOnLocal = true;             ICredentials credentials = new NetworkCredential(UserName,UserKey,DomainName);             _WP.Credentials = credentials;             //GlobalProxySelection.Select = _WP;             WebRequest _HWR = WebRequest.CreateDefault(new System.Uri(URL));             _HWR.Proxy = _WP;             WebResponse _HRS = _HWR.GetResponse() ;             Stream ReceiveStream = _HRS.GetResponseStream();             Encoding encode = System.Text.Encoding.Default;             StreamReader sr = new StreamReader( ReceiveStream, encode );                          string HTMLContent = ;                          Char[] read = new Char[256];             int count = sr.Read( read, 0, 256 );             while (count > 0)               {                 String str = new String(read, 0, count);                 HTMLContent += str;                 count = sr.Read(read, 0, 256);             }             return HTMLContent;         }

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted on 2010-06-08 20:15  清风子  阅读(1210)  评论(0)    收藏  举报

导航