首页 > 代码库 > C#模拟登录的htmlHelper类

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 =http://www.mamicode.com/ 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 =http://www.mamicode.com/ 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