• C#模拟登录的htmlHelper类


      1     public class HTMLHelper  
      2       {  
      3           /// <summary>     
      4           /// 获取CooKie    
      5           /// /// </summary>  
      6           /// /// <param name="loginUrl"></param>     
      7           /// /// <param name="postdata"></param>     
      8           /// /// <param name="header"></param>    
      9           /// /// <returns></returns>        
     10           public static CookieContainer GetCooKie(string loginUrl, HttpHeader header)  
     11           {  
     12               HttpWebRequest request = null;  
     13               HttpWebResponse response = null;  
     14               try  
     15               {  
     16                   CookieContainer cc = new CookieContainer();  
     17                   request = (HttpWebRequest)WebRequest.Create(loginUrl);  
     18                   request.Method = "GET";  
     19                   request.ContentType = header.contentType;  
     20                   
     21                      
     22                   request.AllowAutoRedirect = false;  
     23                   request.CookieContainer = cc;  
     24                   request.KeepAlive = true;  
     25                     
     26                   //接收响应          
     27                   response = (HttpWebResponse)request.GetResponse();  
     28                   response.Cookies = request.CookieContainer.GetCookies(request.RequestUri);  
     29                   CookieCollection cook = response.Cookies;               //Cookie字符串格式      
     30                   string strcrook = request.CookieContainer.GetCookieHeader(request.RequestUri);  
     31                   return cc;  
     32               }  
     33               catch (Exception ex)  
     34               {  
     35                   throw ex;  
     36               }  
     37           }  
     38       
     39           /// <summary>     
     40           /// 获取CooKie    
     41           /// /// </summary>  
     42           /// /// <param name="loginUrl"></param>     
     43           /// /// <param name="postdata"></param>     
     44           /// /// <param name="header"></param>    
     45           /// /// <returns></returns>        
     46           public static CookieContainer GetCooKie(string loginUrl, string postdata, HttpHeader header)  
     47           {  
     48               HttpWebRequest request = null;  
     49               HttpWebResponse response = null;  
     50               try  
     51               {  
     52                   CookieContainer cc = new CookieContainer();  
     53                   request = (HttpWebRequest)WebRequest.Create(loginUrl);  
     54                   request.Method = header.method;  
     55                   request.ContentType = header.contentType;  
     56                   byte[] postdatabyte = Encoding.UTF8.GetBytes(postdata);  
     57                   request.ContentLength = postdatabyte.Length;  
     58                   request.AllowAutoRedirect = false;  
     59                   request.CookieContainer = cc;  
     60                   request.KeepAlive = true;  
     61                   //提交请求        
     62                   Stream stream;  
     63                   stream = request.GetRequestStream();  
     64                   stream.Write(postdatabyte, 0, postdatabyte.Length);  
     65                   stream.Close();  
     66                   //接收响应          
     67                   response = (HttpWebResponse)request.GetResponse();  
     68                   response.Cookies = request.CookieContainer.GetCookies(request.RequestUri);  
     69                   CookieCollection cook = response.Cookies;               //Cookie字符串格式      
     70                   string strcrook = request.CookieContainer.GetCookieHeader(request.RequestUri);  
     71                   return cc;  
     72               }  
     73               catch (Exception ex)  
     74               {  
     75                   throw ex;  
     76               }  
     77           }  
     78           /// <summary>   
     79           /// 获取html    
     80           /// </summary>    
     81           /// <param name="getUrl"></param>     
     82           /// <param name="cookieContainer"></param>    
     83           /// <param name="header"></param>      
     84           /// <returns></returns>      
     85       
     86           public static string GetHtml(string getUrl, CookieContainer cookieContainer, HttpHeader header)  
     87           {  
     88               Thread.Sleep(1000);  
     89               HttpWebRequest httpWebRequest = null;  
     90               HttpWebResponse httpWebResponse = null;  
     91               try  
     92               {  
     93                   httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(getUrl);  
     94                   httpWebRequest.CookieContainer = cookieContainer;  
     95                   httpWebRequest.ContentType = header.contentType;  
     96                   httpWebRequest.ServicePoint.ConnectionLimit = header.maxTry;  
     97                   httpWebRequest.Referer = getUrl;  
     98                   httpWebRequest.Accept = header.accept;  
     99                   httpWebRequest.UserAgent = header.userAgent;  
    100                   httpWebRequest.Method = "GET";  
    101                   httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();  
    102                   Stream responseStream = httpWebResponse.GetResponseStream();  
    103                   StreamReader streamReader = new StreamReader(responseStream, Encoding.UTF8);  
    104                   string html = streamReader.ReadToEnd();  
    105                   streamReader.Close();  
    106                   responseStream.Close();  
    107                   httpWebRequest.Abort();  
    108                   httpWebResponse.Close();  
    109                   return html;  
    110               }  
    111               catch (Exception e)  
    112               {  
    113                   if (httpWebRequest != null) httpWebRequest.Abort();  
    114                   if (httpWebResponse != null) httpWebResponse.Close();  
    115                   return string.Empty;  
    116               }  
    117           }  
    118       
    119           /// <summary>   
    120           /// 获取html    
    121           /// </summary>    
    122           /// <param name="getUrl"></param>     
    123           /// <param name="cookieContainer"></param>    
    124           /// <param name="header"></param>      
    125           /// <returns></returns>      
    126       
    127           public static string GetHtml(string getUrl,string post, CookieContainer cookieContainer, HttpHeader header,Encoding en)  
    128           {  
    129               Thread.Sleep(1000);  
    130               HttpWebRequest myHttpWebRequest = null;  
    131               HttpWebResponse httpWebResponse = null;  
    132               try  
    133               {                 
    134                   byte[] oneData = Encoding.Default.GetBytes(post);  
    135                   Uri uri = new Uri(getUrl);  
    136                   myHttpWebRequest = (HttpWebRequest)WebRequest.Create(uri);//请求的URL  
    137                   myHttpWebRequest.CookieContainer = cookieContainer;//*发送COOKIE  
    138                   myHttpWebRequest.Method = header.method;  
    139                   myHttpWebRequest.ContentType = header.contentType;  
    140                   myHttpWebRequest.ContentLength = oneData.Length;  
    141                   Stream newMyStream = myHttpWebRequest.GetRequestStream();  
    142                   newMyStream.Write(oneData, 0, oneData.Length);  
    143       
    144                   try  
    145                   {  
    146                       httpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();  
    147                       StreamReader sr = new StreamReader(httpWebResponse.GetResponseStream(), en);  
    148       
    149                       string str = sr.ReadToEnd();  
    150       
    151                       string msg = string.Empty;  
    152       
    153                       return str;  
    154                   }  
    155                   catch (Exception ex)  
    156                   {  
    157                       return string.Empty;  
    158                   }  
    159               }  
    160               catch (Exception e)  
    161               {  
    162                   if (myHttpWebRequest != null) myHttpWebRequest.Abort();  
    163                   if (httpWebResponse != null) httpWebResponse.Close();  
    164                   return string.Empty;  
    165               }  
    166               return string.Empty;  
    167           }  
    168       
    169           /// <summary>   
    170           /// 获取html    
    171           /// </summary>    
    172           /// <param name="getUrl"></param>     
    173           /// <param name="cookieContainer"></param>    
    174           /// <param name="header"></param>      
    175           /// <returns></returns>      
    176       
    177           public static string GetHtml(string getUrl, string post, CookieContainer cookieContainer,out CookieContainer co, HttpHeader header, Encoding en)  
    178           {  
    179               Thread.Sleep(1000);  
    180               HttpWebRequest myHttpWebRequest = null;  
    181               HttpWebResponse httpWebResponse = null;  
    182               co = new CookieContainer();  
    183               try  
    184               {  
    185                   byte[] oneData = Encoding.Default.GetBytes(post);  
    186                   Uri uri = new Uri(getUrl);  
    187                   myHttpWebRequest = (HttpWebRequest)WebRequest.Create(uri);//请求的URL  
    188                   if (cookieContainer.Count > 0)  
    189                   {  
    190                       myHttpWebRequest.CookieContainer = cookieContainer;  
    191                   }  
    192                   else  
    193                   {  
    194                       myHttpWebRequest.CookieContainer = co;  
    195                   }  
    196                     
    197                   myHttpWebRequest.Method = header.method;  
    198                   myHttpWebRequest.ContentType = header.contentType;  
    199                   myHttpWebRequest.ContentLength = oneData.Length;  
    200                   Stream newMyStream = myHttpWebRequest.GetRequestStream();  
    201                   newMyStream.Write(oneData, 0, oneData.Length);  
    202       
    203                   try  
    204                   {  
    205                       httpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();  
    206                       StreamReader sr = new StreamReader(httpWebResponse.GetResponseStream(), en);  
    207       
    208                       httpWebResponse.Cookies = myHttpWebRequest.CookieContainer.GetCookies(myHttpWebRequest.RequestUri);  
    209                       CookieCollection cook = httpWebResponse.Cookies;               //Cookie字符串格式      
    210                       string strcrook = myHttpWebRequest.CookieContainer.GetCookieHeader(myHttpWebRequest.RequestUri);  
    211       
    212                       string str = sr.ReadToEnd();  
    213       
    214                       string msg = string.Empty;  
    215       
    216                       return str;  
    217                   }  
    218                   catch (Exception ex)  
    219                   {  
    220                       return string.Empty;  
    221                   }  
    222               }  
    223               catch (Exception e)  
    224               {  
    225                   if (myHttpWebRequest != null) myHttpWebRequest.Abort();  
    226                   if (httpWebResponse != null) httpWebResponse.Close();  
    227                   return string.Empty;  
    228               }  
    229               return string.Empty;  
    230           }  
    231       
    232       
    233       
    234           /// <summary>   
    235           /// 获取Stream    
    236           /// </summary>    
    237           /// <param name="getUrl"></param>     
    238           /// <param name="cookieContainer"></param>    
    239           /// <param name="header"></param>      
    240           /// <returns></returns>      
    241       
    242           public static Stream GetStream(string getUrl, CookieContainer cookieContainer, HttpHeader header)  
    243           {  
    244               Thread.Sleep(1000);  
    245               HttpWebRequest httpWebRequest = null;  
    246               HttpWebResponse httpWebResponse = null;  
    247               try  
    248               {  
    249                   httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(getUrl);  
    250                   httpWebRequest.CookieContainer = cookieContainer;  
    251                   httpWebRequest.ContentType = header.contentType;  
    252                   httpWebRequest.ServicePoint.ConnectionLimit = header.maxTry;  
    253                   httpWebRequest.Referer = header.referer;  
    254                   httpWebRequest.Accept = header.accept;  
    255                   httpWebRequest.UserAgent = header.userAgent;  
    256                   httpWebRequest.Method = "GET";  
    257                   httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();  
    258                   Stream responseStream = httpWebResponse.GetResponseStream();  
    259       
    260                   return responseStream;  
    261               }  
    262               catch (Exception e)  
    263               {  
    264                   if (httpWebRequest != null) httpWebRequest.Abort();  
    265                   if (httpWebResponse != null) httpWebResponse.Close();  
    266                   return null;  
    267               }  
    268           }  
    269          
    270           public static Stream GetStream(string getUrl, CookieContainer cookieContainer, out CookieContainer co, HttpHeader header)  
    271           {  
    272       
    273               Thread.Sleep(1000);  
    274               HttpWebRequest httpWebRequest = null;  
    275               HttpWebResponse httpWebResponse = null;  
    276               co = new CookieContainer();  
    277               try  
    278               {  
    279                   httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(getUrl);  
    280                   if (cookieContainer.Count > 0)  
    281                   {  
    282                       httpWebRequest.CookieContainer = cookieContainer;  
    283                   }  
    284                   else  
    285                   {  
    286                       httpWebRequest.CookieContainer = co;  
    287                   }  
    288                    
    289                   httpWebRequest.ContentType = header.contentType;  
    290                   httpWebRequest.ServicePoint.ConnectionLimit = header.maxTry;  
    291                   httpWebRequest.Referer = getUrl;  
    292                   httpWebRequest.Accept = header.accept;  
    293                   httpWebRequest.UserAgent = header.userAgent;  
    294                   httpWebRequest.Method = "GET";  
    295                   httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();  
    296                   Stream responseStream = httpWebResponse.GetResponseStream();  
    297       
    298       
    299       
    300                   httpWebResponse.Cookies = httpWebRequest.CookieContainer.GetCookies(httpWebRequest.RequestUri);  
    301                   CookieCollection cook = httpWebResponse.Cookies;               //Cookie字符串格式      
    302                   string strcrook = httpWebRequest.CookieContainer.GetCookieHeader(httpWebRequest.RequestUri);  
    303                     
    304       
    305                   return responseStream;  
    306               }  
    307               catch (Exception e)  
    308               {  
    309                   if (httpWebRequest != null) httpWebRequest.Abort();  
    310                   if (httpWebResponse != null) httpWebResponse.Close();  
    311                   return null;  
    312               }  
    313           }  
    314       
    315       }  
    316       
    317       
    318       
    319       public class HttpHeader  
    320       {  
    321           public string contentType { get; set; }  
    322           public string accept { get; set; }  
    323           public string userAgent { get; set; }  
    324           public string method { get; set; }  
    325           public int maxTry { get; set; }  
    326           public string referer { get; set; }  
    327       }  
    View Code
  • 相关阅读:
    【linux系列】配置免密登陆
    【linux系列】centos安装vsftp
    【linux系列】cenos7安装jdk
    MySQL DATE_SUB()
    Java基本数据类型
    Gson使用中遇到的Date格式问题
    数组中存放对象之java中定义类数组存放类
    获取X天后的日期
    sql统计总和和各状态数
    HttpServletRequest获取URL?后面的内容
  • 原文地址:https://www.cnblogs.com/qiailu/p/3880903.html
Copyright © 2020-2023  润新知