当前位置:   article > 正文

HttpWebRequest类的简单封装_httpwebrequest 封装

httpwebrequest 封装

 

HttpWebRequest类主要利用HTTP 协议和服务器交互,通常是通过 GET 和 POST 两种方式来对数据进行获取和提交。

 

用C#语言写的关于HttpWebRequest 类的使用方法

 

  1. using System;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. using System.Net;
  5. using System.Text;
  6. namespace HttpWeb
  7. {
  8. /** <summary>
  9. /// Http操作类
  10. /// </summary>
  11. public static class httptest
  12. {
  13. /** <summary>
  14. /// 获取网址HTML
  15. /// </summary>
  16. /// <param name="URL">网址 </param>
  17. /// <returns> </returns>
  18. public static string GetHtml(string URL)
  19. {
  20. WebRequest wrt;
  21. wrt = WebRequest.Create(URL);
  22. wrt.Credentials = CredentialCache.DefaultCredentials;
  23. WebResponse wrp;
  24. wrp = wrt.GetResponse();
  25. string reader = new StreamReader(wrp.GetResponseStream(), Encoding.GetEncoding("gb2312")).ReadToEnd();
  26. try
  27. {
  28. wrt.GetResponse().Close();
  29. }
  30. catch (WebException ex)
  31. {
  32. throw ex;
  33. }
  34. return reader;
  35. }
  36. /** <summary>
  37. /// 获取网站cookie
  38. /// </summary>
  39. /// <param name="URL">网址 </param>
  40. /// <param name="cookie">cookie </param>
  41. /// <returns> </returns>
  42. public static string GetHtml(string URL, out string cookie)
  43. {
  44. WebRequest wrt;
  45. wrt = WebRequest.Create(URL);
  46. wrt.Credentials = CredentialCache.DefaultCredentials;
  47. WebResponse wrp;
  48. wrp = wrt.GetResponse();
  49. string html = new StreamReader(wrp.GetResponseStream(), Encoding.GetEncoding("gb2312")).ReadToEnd();
  50. try
  51. {
  52. wrt.GetResponse().Close();
  53. }
  54. catch (WebException ex)
  55. {
  56. throw ex;
  57. }
  58. cookie = wrp.Headers.Get("Set-Cookie");
  59. return html;
  60. }
  61. public static string GetHtml(string URL, string postData, string cookie, out string header, string server)
  62. {
  63. return GetHtml(server, URL, postData, cookie, out header);
  64. }
  65. public static string GetHtml(string server, string URL, string postData, string cookie, out string header)
  66. {
  67. byte[] byteRequest = Encoding.GetEncoding("gb2312").GetBytes(postData);
  68. return GetHtml(server, URL, byteRequest, cookie, out header);
  69. }
  70. public static string GetHtml(string server, string URL, byte[] byteRequest, string cookie, out string header)
  71. {
  72. byte[] bytes = GetHtmlByBytes(server, URL, byteRequest, cookie, out header);
  73. Stream getStream = new MemoryStream(bytes);
  74. StreamReader streamReader = new StreamReader(getStream, Encoding.GetEncoding("gb2312"));
  75. string getString = streamReader.ReadToEnd();
  76. streamReader.Close();
  77. getStream.Close();
  78. return getString;
  79. }
  80. /** <summary>
  81. /// Post模式浏览
  82. /// </summary>
  83. /// <param name="server">服务器地址 </param>
  84. /// <param name="URL">网址 </param>
  85. /// <param name="byteRequest">流 </param>
  86. /// <param name="cookie">cookie </param>
  87. /// <param name="header">句柄 </param>
  88. /// <returns> </returns>
  89. public static byte[] GetHtmlByBytes(string server, string URL, byte[] byteRequest, string cookie, out string header)
  90. {
  91. long contentLength;
  92. HttpWebRequest httpWebRequest;
  93. HttpWebResponse webResponse;
  94. Stream getStream;
  95. httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(URL);
  96. CookieContainer co = new CookieContainer();
  97. co.SetCookies(new Uri(server), cookie);
  98. httpWebRequest.CookieContainer = co;
  99. httpWebRequest.ContentType = "application/x-www-form-urlencoded";
  100. httpWebRequest.Accept =
  101. "image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*";
  102. httpWebRequest.Referer = server;
  103. httpWebRequest.UserAgent =
  104. "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Maxthon; .NET CLR 1.1.4322)";
  105. httpWebRequest.Method = "Post";
  106. httpWebRequest.ContentLength = byteRequest.Length;
  107. Stream stream;
  108. stream = httpWebRequest.GetRequestStream();
  109. stream.Write(byteRequest, 0, byteRequest.Length);
  110. stream.Close();
  111. webResponse = (HttpWebResponse)httpWebRequest.GetResponse();
  112. header = webResponse.Headers.ToString();
  113. getStream = webResponse.GetResponseStream();
  114. contentLength = webResponse.ContentLength;
  115. byte[] outBytes = new byte[contentLength];
  116. outBytes = ReadFully(getStream);
  117. getStream.Close();
  118. return outBytes;
  119. }
  120. public static byte[] ReadFully(Stream stream)
  121. {
  122. byte[] buffer = new byte[128];
  123. using (MemoryStream ms = new MemoryStream())
  124. {
  125. while (true)
  126. {
  127. int read = stream.Read(buffer, 0, buffer.Length);
  128. if (read <= 0)
  129. return ms.ToArray();
  130. ms.Write(buffer, 0, read);
  131. }
  132. }
  133. }
  134. /** <summary>
  135. /// Get模式
  136. /// </summary>
  137. /// <param name="URL">网址 </param>
  138. /// <param name="cookie">cookies </param>
  139. /// <param name="header">句柄 </param>
  140. /// <param name="server">服务器 </param>
  141. /// <param name="val">服务器 </param>
  142. /// <returns> </returns>
  143. public static string GetHtml(string URL, string cookie, out string header, string server)
  144. {
  145. return GetHtml(URL, cookie, out header, server, "");
  146. }
  147. /** <summary>
  148. /// Get模式浏览
  149. /// </summary>
  150. /// <param name="URL">Get网址 </param>
  151. /// <param name="cookie">cookie </param>
  152. /// <param name="header">句柄 </param>
  153. /// <param name="server">服务器地址 </param>
  154. /// <param name="val"> </param>
  155. /// <returns> </returns>
  156. public static string GetHtml(string URL, string cookie, out string header, string server, string val)
  157. {
  158. HttpWebRequest httpWebRequest;
  159. HttpWebResponse webResponse;
  160. Stream getStream;
  161. StreamReader streamReader;
  162. string getString = "";
  163. httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(URL);
  164. httpWebRequest.Accept = "*/*";
  165. httpWebRequest.Referer = server;
  166. CookieContainer co = new CookieContainer();
  167. co.SetCookies(new Uri(server), cookie);
  168. httpWebRequest.CookieContainer = co;
  169. httpWebRequest.UserAgent =
  170. "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Maxthon; .NET CLR 1.1.4322)";
  171. httpWebRequest.Method = "GET";
  172. webResponse = (HttpWebResponse)httpWebRequest.GetResponse();
  173. header = webResponse.Headers.ToString();
  174. getStream = webResponse.GetResponseStream();
  175. streamReader = new StreamReader(getStream, Encoding.GetEncoding("gb2312"));
  176. getString = streamReader.ReadToEnd();
  177. streamReader.Close();
  178. getStream.Close();
  179. return getString;
  180. }
  181. }
  182. }


 

 

文章转载自:      HttpWebRequest的使用      http://www.studyofnet.com/news/232.html

 

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/259386
推荐阅读
相关标签
  

闽ICP备14008679号