HttpTool.cs 7.7 KB

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