C# HttpWebRequest 通用类2 - 转

using  System;
using  System.Collections.Generic;
using  System.IO;
using  System.Net;
using  System.Text;

namespace  HttpWeb
{
    
///   <summary>  
    
///   Http操作类 
    
///   </summary>  
     public   static   class  httptest
    {
        
///   <summary>  
        
///   获取网址HTML 
        
///   </summary>  
        
///   <param name="URL"> 网址  </param>  
        
///   <returns>   </returns>  
         public   static   string  GetHtml( string  URL)
        {
            WebRequest wrt;
            wrt 
=  WebRequest.Create(URL);
            wrt.Credentials 
=  CredentialCache.DefaultCredentials;
            WebResponse wrp;
            wrp 
=  wrt.GetResponse();
            
string  reader  =   new  StreamReader(wrp.GetResponseStream(), Encoding.GetEncoding( " gb2312 " )).ReadToEnd();
            
try
            {
                wrt.GetResponse().Close();
            }
            
catch  (WebException ex)
            {
                
throw  ex;
            }
            
return  reader;
        }
        
///   <summary>  
        
///  获取网站cookie 
        
///   </summary>  
        
///   <param name="URL"> 网址  </param>  
        
///   <param name="cookie"> cookie  </param>  
        
///   <returns>   </returns>  
         public   static   string  GetHtml( string  URL,  out   string  cookie)
        {
            WebRequest wrt;
            wrt 
=  WebRequest.Create(URL);
            wrt.Credentials 
=  CredentialCache.DefaultCredentials;
            WebResponse wrp;

            wrp 
=  wrt.GetResponse();


            
string  html  =   new  StreamReader(wrp.GetResponseStream(), Encoding.GetEncoding( " gb2312 " )).ReadToEnd();

            
try
            {
                wrt.GetResponse().Close();
            }
            
catch  (WebException ex)
            {
                
throw  ex;
            }

            cookie 
=  wrp.Headers.Get( " Set-Cookie " );
            
return  html;
        }
        
public   static   string  GetHtml( string  URL,  string  postData,  string  cookie,  out   string  header,  string  server)
        {
            
return  GetHtml(server, URL, postData, cookie,  out  header);
        }
        
public   static   string  GetHtml( string  server,  string  URL,  string  postData,  string  cookie,  out   string  header)
        {
            
byte [] byteRequest  =  Encoding.GetEncoding( " gb2312 " ).GetBytes(postData);
            
return  GetHtml(server, URL, byteRequest, cookie,  out  header);
        }
        
public   static   string  GetHtml( string  server,  string  URL,  byte [] byteRequest,  string  cookie,  out   string  header)
        {
            
byte [] bytes  =  GetHtmlByBytes(server, URL, byteRequest, cookie,  out  header);
            Stream getStream 
=   new  MemoryStream(bytes);
            StreamReader streamReader 
=   new  StreamReader(getStream, Encoding.GetEncoding( " gb2312 " ));
            
string  getString  =  streamReader.ReadToEnd();
            streamReader.Close();
            getStream.Close();
            
return  getString;
        }

        
///   <summary>  
        
///  Post模式浏览 
        
///   </summary>  
        
///   <param name="server"> 服务器地址  </param>  
        
///   <param name="URL"> 网址  </param>  
        
///   <param name="byteRequest"> 流  </param>  
        
///   <param name="cookie"> cookie  </param>  
        
///   <param name="header"> 句柄  </param>  
        
///   <returns>   </returns>  
         public   static   byte [] GetHtmlByBytes( string  server,  string  URL,  byte [] byteRequest,  string  cookie,  out   string  header)
        {
            
long  contentLength;
            HttpWebRequest httpWebRequest;
            HttpWebResponse webResponse;
            Stream getStream;

            httpWebRequest 
=  (HttpWebRequest)HttpWebRequest.Create(URL);
            CookieContainer co 
=   new  CookieContainer();
            co.SetCookies(
new  Uri(server), cookie);

            httpWebRequest.CookieContainer 
=  co;

            httpWebRequest.ContentType 
=   " application/x-www-form-urlencoded " ;
            httpWebRequest.Accept 
=
                
" image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */* " ;
            httpWebRequest.Referer 
=  server;
            httpWebRequest.UserAgent 
=
                
" Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Maxthon; .NET CLR 1.1.4322) " ;
            httpWebRequest.Method 
=   " Post " ;
            httpWebRequest.ContentLength 
=  byteRequest.Length;
            Stream stream;
            stream 
=  httpWebRequest.GetRequestStream();
            stream.Write(byteRequest, 
0 , byteRequest.Length);
            stream.Close();
            webResponse 
=  (HttpWebResponse)httpWebRequest.GetResponse();
            header 
=  webResponse.Headers.ToString();
            getStream 
=  webResponse.GetResponseStream();
            contentLength 
=  webResponse.ContentLength;

            
byte [] outBytes  =   new   byte [contentLength];
            outBytes 
=  ReadFully(getStream);
            getStream.Close();
            
return  outBytes;
        }
        
public   static   byte [] ReadFully(Stream stream)
        {
            
byte [] buffer  =   new   byte [ 128 ];
            
using  (MemoryStream ms  =   new  MemoryStream())
            {
                
while  ( true )
                {
                    
int  read  =  stream.Read(buffer,  0 , buffer.Length);
                    
if  (read  <=   0 )
                        
return  ms.ToArray();
                    ms.Write(buffer, 
0 , read);
                }
            }
        }

        
///   <summary>  
        
///  Get模式 
        
///   </summary>  
        
///   <param name="URL"> 网址  </param>  
        
///   <param name="cookie"> cookies  </param>  
        
///   <param name="header"> 句柄  </param>  
        
///   <param name="server"> 服务器  </param>  
        
///   <param name="val"> 服务器  </param>  
        
///   <returns>   </returns>  
         public   static   string  GetHtml( string  URL,  string  cookie,  out   string  header,  string  server)
        {
            
return  GetHtml(URL, cookie,  out  header, server,  "" );
        }
        
///   <summary>  
        
///  Get模式浏览 
        
///   </summary>  
        
///   <param name="URL"> Get网址  </param>  
        
///   <param name="cookie"> cookie  </param>  
        
///   <param name="header"> 句柄  </param>  
        
///   <param name="server"> 服务器地址  </param>  
        
///   <param name="val">   </param>  
        
///   <returns>   </returns>  
         public   static   string  GetHtml( string  URL,  string  cookie,  out   string  header,  string  server,  string  val)
        {
            HttpWebRequest httpWebRequest;
            HttpWebResponse webResponse;
            Stream getStream;
            StreamReader streamReader;
            
string  getString  =   "" ;
            httpWebRequest 
=  (HttpWebRequest)HttpWebRequest.Create(URL);
            httpWebRequest.Accept 
=   " */* " ;
            httpWebRequest.Referer 
=  server;
            CookieContainer co 
=   new  CookieContainer();
            co.SetCookies(
new  Uri(server), cookie);
            httpWebRequest.CookieContainer 
=  co;
            httpWebRequest.UserAgent 
=
                
" Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Maxthon; .NET CLR 1.1.4322) " ;
            httpWebRequest.Method 
=   " GET " ;
            webResponse 
=  (HttpWebResponse)httpWebRequest.GetResponse();
            header 
=  webResponse.Headers.ToString();
            getStream 
=  webResponse.GetResponseStream();
            streamReader 
=   new  StreamReader(getStream, Encoding.GetEncoding( " gb2312 " ));
            getString 
=  streamReader.ReadToEnd();

            streamReader.Close();
            getStream.Close();
            
return  getString;
        }
        
///   <summary>  
        
///  返回验证码图片流 
        
///   </summary>  
        
///   <param name="server"> 服务器地址  </param>  
        
///   <param name="URL"> 验证码网址  </param>  
        
///   <param name="cookie"> cookie  </param>  
        
///   <returns>   </returns>  
         public   static  Stream GetStreamByBytes( string  server,  string  URL,  string  cookie)
        {
            Stream stream 
=  GetCode(server, URL, cookie);
            
return  stream;
        }

        
///   <summary>  
        
///  //获取验证码 
        
///   </summary>  
        
///   <param name="server"> 服务器地址  </param>  
        
///   <param name="url"> 验证码网址  </param>  
        
///   <param name="cookie"> cookie  </param>  
        
///   <returns>   </returns>  
         public   static  Stream GetCode( string  server,  string  url,  string  cookie)
        {

            HttpWebRequest httpWebRequest;

            httpWebRequest 
=  (HttpWebRequest)HttpWebRequest.Create(url);
            CookieContainer co 
=   new  CookieContainer();
            co.SetCookies(
new  Uri(server), cookie);
            httpWebRequest.CookieContainer 
=  co;

            HttpWebResponse response 
=  (HttpWebResponse)httpWebRequest.GetResponse();
            Stream stream 
=  response.GetResponseStream();
            
return  stream;

        }
        
///   <summary>  
        
///  获取html 
        
///   </summary>  
        
///   <param name="server">   </param>  
        
///   <param name="url">   </param>  
        
///   <param name="cookie">   </param>  
        
///   <returns>   </returns>  

        
public   static   string  GetUser( string  server,  string  url,  string  cookie)
        {
            
string  getString  =   "" ;
            
try
            {
                HttpWebRequest httpWebRequest;
                StreamReader streamReader;


                httpWebRequest 
=  (HttpWebRequest)HttpWebRequest.Create(url);
                CookieContainer co 
=   new  CookieContainer();
                co.SetCookies(
new  Uri(server), cookie);
                httpWebRequest.CookieContainer 
=  co;

                HttpWebResponse response 
=  (HttpWebResponse)httpWebRequest.GetResponse();

                Stream stream 
=  response.GetResponseStream();


                streamReader 
=   new  StreamReader(stream, Encoding.GetEncoding( " gb2312 " ));
                getString 
=  streamReader.ReadToEnd();


                
try
                {
                    httpWebRequest.GetResponse().Close();
                }
                
catch  (WebException ex)
                {
                    
throw  ex;
                }
                streamReader.Close();
                stream.Close();

            }
            
catch
            {
            }
            
return  getString;

        }

    }

}

你可能感兴趣的:(request)