使用代理服务器

用HttpWebRequest   
    


    
  System.Uri   url=new   Uri(@"http://www.XXX.XXX/");  
  System.Net.HttpWebRequest   request;  
  System.Net.HttpWebResponse   response;  
  request=(System.Net.HttpWebRequest)System.Net.WebRequest.Create(url);  
  request.Method="GET";  
  WebProxy   proxy=new   WebProxy(代理的IP,代理的端口);  
  proxy=(WebProxy)request.Proxy;  
  response=(System.Net.HttpWebResponse)request.GetResponse();  
  StreamReader   read=new   StreamReader(response.GetResponseStream(),System.Text.Encoding.UTF8);  
  String   html=read.ReadToEnd();  
   
  这样html变量就是抓回来的HTML了,如果代理还要求帐号和密码,那在proxy里设

 

 

以下的没仔细看  用Sockets类

 

you   should   be   using   HttpWebRequest/HttpWebResponse/WebProxy   class   in   System.Net,   it   is   easier,   but   if   you   insist,   try   to   grab   the   ProxySocket:  
   
  http://www.mentalis.org/soft/class.qpx?id=9  
   
  otherwise,   you   have   to   compose   the   HTTP   message   yourself,   for   example   (adapted   from   http://www.c-sharpcorner.com/Network/NetworkProgramPart2RVS.asp)  
   
  using   System;  
  using   System.Net;  
  using   System.Net.Sockets;  
  using   System.Text;      
   
  class   MyClient  
  {  
                          public   static   void   Main()  
                          {  
  string   proxyserver   =   "YourProxyServerAddress";  
  int   port   =   8080;  
   
  string   webserver   =   "www.google.com";  
                                                  IPHostEntry   IPHost   =   Dns.Resolve(proxyserver);  
                                                  Console.WriteLine(IPHost.HostName);  
                                                  string   []aliases   =   IPHost.Aliases;      
   
                                                  IPAddress[]   addr   =   IPHost.AddressList;  
                                                  Console.WriteLine(addr[0]);  
                                                  EndPoint   ep   =   new   IPEndPoint(addr[0],port);      
   
  Socket   sock   =   new   Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);    
   
                                                  sock.Connect(ep);  
                                                  if(sock.Connected)  
                                                                          Console.WriteLine("OK");  
                                                  Encoding   ASCII   =   Encoding.ASCII;  
                                                  string   Get   =   String.Format("GET   http://{0}/   HTTP/1.1/r/nHost:   {0}/r/nConnection:   Close/r/nProxy-Authorization:   true/r/n/r/n",   webserver);  
                                                  Byte[]   ByteGet   =   ASCII.GetBytes(Get);  
                                                  Byte[]   RecvBytes   =   new   Byte[256];  
                                                  sock.Send(ByteGet,   ByteGet.Length,   0);  
                                                  Int32   bytes   =   sock.Receive(RecvBytes,   RecvBytes.Length,   0);  
                                                  Console.WriteLine(bytes);  
                                                  String   strRetPage   =   null;  
                                                  strRetPage   =   strRetPage   +   ASCII.GetString(RecvBytes,   0,   bytes);  
                                                  while   (bytes   >   0)  
                                                  {  
                                                                          bytes   =   sock.Receive(RecvBytes,   RecvBytes.Length,   0);  
                                                                          strRetPage   =   strRetPage   +   ASCII.GetString(RecvBytes,   0,   bytes);  
                                                                          Console.WriteLine(strRetPage   );  
                                                  }  
                                                  sock.Shutdown(SocketShutdown.Both);  
                                                  sock.Close();  
                          }  
  }     
    
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值