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

 

你可能感兴趣的:(html)