HttpTool.cs 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  1. using Newtonsoft.Json;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.IO;
  5. using System.Net;
  6. using System.Text;
  7. using System.Web;
  8. using Y.Utils.Net20.StringUtils;
  9. namespace Y.Utils.Net20.HttpUtils
  10. {
  11. public class HttpTool
  12. {
  13. public static string Get(string url, string encoding = "utf-8")
  14. {
  15. string result = "";
  16. try
  17. {
  18. Encoding myEncoding = Encoding.GetEncoding(encoding);
  19. HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
  20. req.Method = "GET";
  21. using (WebResponse wr = req.GetResponse())
  22. {
  23. //在这里对接收到的页面内容进行处理
  24. result = new StreamReader(wr.GetResponseStream(), myEncoding).ReadToEnd();
  25. }
  26. }
  27. catch (Exception e) { }
  28. return result;
  29. }
  30. public static T Get<T>(string url, string encoding = "utf-8")
  31. {
  32. try
  33. {
  34. Encoding myEncoding = Encoding.GetEncoding(encoding);
  35. HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
  36. req.Method = "GET";
  37. using (WebResponse wr = req.GetResponse())
  38. {
  39. //在这里对接收到的页面内容进行处理
  40. string response = new StreamReader(wr.GetResponseStream(), myEncoding).ReadToEnd();
  41. if (!StringTool.IsNullOrWhiteSpace(response))
  42. {
  43. T result = JsonConvert.DeserializeObject<T>(response);
  44. return result;
  45. }
  46. }
  47. }
  48. catch (Exception e) { }
  49. return default(T);
  50. }
  51. public static string Post(string url, string param, string encoding = "utf-8")
  52. {
  53. string result = string.Empty;
  54. try
  55. {
  56. Encoding myEncoding = Encoding.GetEncoding(encoding);
  57. byte[] byteArray = myEncoding.GetBytes(param); //转化
  58. HttpWebRequest webReq = (HttpWebRequest)WebRequest.Create(new Uri(url));
  59. webReq.Method = "POST";
  60. webReq.ContentType = "application/x-www-form-urlencoded";
  61. webReq.ContentLength = byteArray.Length;
  62. Stream newStream = webReq.GetRequestStream();
  63. newStream.Write(byteArray, 0, byteArray.Length);//写入参数
  64. newStream.Close();
  65. HttpWebResponse response = (HttpWebResponse)webReq.GetResponse();
  66. StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.Default);
  67. result = sr.ReadToEnd();
  68. sr.Close();
  69. response.Close();
  70. newStream.Close();
  71. }
  72. catch (Exception ex)
  73. { }
  74. return result;
  75. }
  76. //public static string PostJson(string url, string param)
  77. //{
  78. // HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
  79. // request.Method = "POST";
  80. // request.ContentType = "application/json";
  81. // request.ContentLength = Encoding.UTF8.GetByteCount(param);
  82. // Stream myRequestStream = request.GetRequestStream();
  83. // StreamWriter myStreamWriter = new StreamWriter(myRequestStream, Encoding.GetEncoding("gb2312"));
  84. // myStreamWriter.Write(param);
  85. // myStreamWriter.Close();
  86. // HttpWebResponse response = (HttpWebResponse)request.GetResponse();
  87. // Stream myResponseStream = response.GetResponseStream();
  88. // StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));
  89. // string retString = myStreamReader.ReadToEnd();
  90. // myStreamReader.Close();
  91. // myResponseStream.Close();
  92. // return retString;
  93. //}
  94. public static string PostJson(string url, string param)
  95. {
  96. string rs = null;
  97. ServicePointManager.DefaultConnectionLimit = 300;
  98. System.GC.Collect();
  99. CookieContainer cookieContainer = new CookieContainer();
  100. // 设置提交的相关参数
  101. HttpWebRequest request = null;
  102. HttpWebResponse SendSMSResponse = null;
  103. Stream dataStream = null;
  104. StreamReader SendSMSResponseStream = null;
  105. try
  106. {
  107. request = WebRequest.Create(url) as HttpWebRequest;
  108. request.Method = "POST";
  109. request.KeepAlive = false;
  110. request.ServicePoint.ConnectionLimit = 300;
  111. request.AllowAutoRedirect = true;
  112. request.Timeout = 10000;
  113. request.ReadWriteTimeout = 10000;
  114. request.ContentType = "application/json";
  115. request.Accept = "application/xml";
  116. request.Headers.Add("X-Auth-Token", HttpUtility.UrlEncode("OpenStack"));
  117. string strContent = param;
  118. byte[] bytes = Encoding.UTF8.GetBytes(strContent);
  119. request.Proxy = null;
  120. request.CookieContainer = cookieContainer;
  121. using (dataStream = request.GetRequestStream())
  122. {
  123. dataStream.Write(bytes, 0, bytes.Length);
  124. }
  125. SendSMSResponse = (HttpWebResponse)request.GetResponse();
  126. if (SendSMSResponse.StatusCode == HttpStatusCode.RequestTimeout)
  127. {
  128. if (SendSMSResponse != null)
  129. {
  130. SendSMSResponse.Close();
  131. SendSMSResponse = null;
  132. }
  133. if (request != null)
  134. {
  135. request.Abort();
  136. }
  137. return null;
  138. }
  139. SendSMSResponseStream = new StreamReader(SendSMSResponse.GetResponseStream(), Encoding.GetEncoding("utf-8"));
  140. string strRespone = SendSMSResponseStream.ReadToEnd();
  141. return strRespone;
  142. }
  143. catch (Exception ex)
  144. {
  145. if (dataStream != null)
  146. {
  147. dataStream.Close();
  148. dataStream.Dispose();
  149. dataStream = null;
  150. }
  151. if (SendSMSResponseStream != null)
  152. {
  153. SendSMSResponseStream.Close();
  154. SendSMSResponseStream.Dispose();
  155. SendSMSResponseStream = null;
  156. }
  157. if (SendSMSResponse != null)
  158. {
  159. SendSMSResponse.Close();
  160. SendSMSResponse = null;
  161. }
  162. if (request != null)
  163. {
  164. request.Abort();
  165. }
  166. }
  167. finally
  168. {
  169. if (dataStream != null)
  170. {
  171. dataStream.Close();
  172. dataStream.Dispose();
  173. dataStream = null;
  174. }
  175. if (SendSMSResponseStream != null)
  176. {
  177. SendSMSResponseStream.Close();
  178. SendSMSResponseStream.Dispose();
  179. SendSMSResponseStream = null;
  180. }
  181. if (SendSMSResponse != null)
  182. {
  183. SendSMSResponse.Close();
  184. SendSMSResponse = null;
  185. }
  186. if (request != null)
  187. {
  188. request.Abort();
  189. }
  190. }
  191. return rs;
  192. }
  193. }
  194. }