使用代理服务器

用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();  
                          }  
  }     
    
 

你可能感兴趣的:(使用代理服务器)