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

 

C#模拟登录的htmlHelper类,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。