HttpUtil.cs 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198
  1. using System;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. using System.Linq;
  5. using System.Net;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. namespace DayOf1440.Utils
  9. {
  10. class HttpUtil
  11. {
  12. //public HttpUtil mHttpUtil;
  13. HttpWebRequest mHttpWebRequest;
  14. private String mHost;
  15. public HttpUtil(String host)
  16. {
  17. mHost = host;
  18. }
  19. /// <summary>
  20. /// 登录后设置coolie和header
  21. /// </summary>
  22. /// <param name="abc"></param>
  23. /// <returns></returns>
  24. public HttpWebRequest SetHeader(List<Dictionary<String, String>> abc)
  25. {
  26. //WebHeaderCollection
  27. //mHttpWebRequest.Headers=abc;
  28. return mHttpWebRequest;
  29. }
  30. //public String Get(String apiUrl, List<Directory<string, string>> data, String encoding = "utf-8")
  31. //{
  32. // try
  33. // {
  34. // Encoding myEncoding = Encoding.GetEncoding(encoding);
  35. // foreach (Directory<string, string> item in data)
  36. // {
  37. // item.GetHashCode
  38. // }
  39. // string address = apiUrl + "?" + data;
  40. // HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(address);
  41. // req.Method = "GET";
  42. // using (WebResponse response = req.GetResponse())
  43. // {
  44. // //在这里对接收到的页面内容进行处理  
  45. // StreamReader reader = new StreamReader(response.GetResponseStream(), System.Text.Encoding.GetEncoding("utf-8"));
  46. // string backdata = reader.ReadToEnd().ToString();
  47. // return backdata;
  48. // }
  49. // }
  50. // catch (Exception ex)
  51. // {
  52. // string error = ex.ToString();
  53. // return "";
  54. // }
  55. //}
  56. public String Get(String apiUrl, String data = "", String encoding = "utf-8")
  57. {
  58. try
  59. {
  60. Encoding myEncoding = Encoding.GetEncoding(encoding);
  61. string address = apiUrl + "?" + data;
  62. HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(address);
  63. req.Method = "GET";
  64. using (WebResponse response = req.GetResponse())
  65. {
  66. //在这里对接收到的页面内容进行处理  
  67. StreamReader reader = new StreamReader(response.GetResponseStream(), System.Text.Encoding.GetEncoding("utf-8"));
  68. string backdata = reader.ReadToEnd().ToString();
  69. return backdata;
  70. }
  71. }
  72. catch (Exception ex)
  73. {
  74. string error = ex.ToString();
  75. return "";
  76. }
  77. }
  78. /// <summary>
  79. /// get请求
  80. /// </summary>
  81. /// <param name="url"></param>
  82. /// <param name="data"></param>
  83. /// <param name="encodeing"></param>
  84. /// <returns></returns>
  85. //public static string Get(string url, string data = "", string encodeing = "utf-8")
  86. //{
  87. // try
  88. // {
  89. // Encoding myEncoding = Encoding.GetEncoding(encodeing);
  90. // string address = url + "?" + data;
  91. // HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(address);
  92. // req.Method = "GET";
  93. // using (WebResponse response = req.GetResponse())
  94. // {
  95. // //在这里对接收到的页面内容进行处理  
  96. // StreamReader reader = new StreamReader(response.GetResponseStream(), System.Text.Encoding.GetEncoding("utf-8"));
  97. // string backdata = reader.ReadToEnd().ToString();
  98. // return backdata;
  99. // }
  100. // }
  101. // catch (Exception ex)
  102. // {
  103. // string error = ex.ToString();
  104. // return "";
  105. // }
  106. //}
  107. public static string Post(string url, string data = "", string encodeing = "utf-8")
  108. {
  109. try
  110. {
  111. Encoding myEncoding = Encoding.GetEncoding(encodeing);
  112. string param = data;// Http.UrlEncode(data);
  113. byte[] postBytes = Encoding.UTF8.GetBytes(param);
  114. HttpWebRequest req = (HttpWebRequest)
  115. HttpWebRequest.Create(url);
  116. req.Method = "POST";
  117. req.ContentType = "application/x-www-form-urlencoded;charset=utf8";
  118. req.ContentLength = postBytes.Length;
  119. using (Stream reqStream = req.GetRequestStream())
  120. {
  121. reqStream.Write(postBytes, 0, postBytes.Length);
  122. }
  123. using (WebResponse response = req.GetResponse())
  124. {
  125. //在这里对接收到的页面内容进行处理  
  126. StreamReader reader = new StreamReader(response.GetResponseStream(), System.Text.Encoding.GetEncoding("utf-8"));
  127. string backdata = reader.ReadToEnd().ToString();
  128. return backdata;
  129. }
  130. }
  131. catch (Exception)
  132. {
  133. return "";
  134. }
  135. }
  136. /// <summary>
  137. /// 下载文件
  138. /// </summary>
  139. /// <param name="url"></param>
  140. public void Download(String url)
  141. {
  142. }
  143. /// <summary>
  144. /// 上传文件
  145. /// </summary>
  146. /// <param name="url"></param>
  147. public void Upload(String url)
  148. {
  149. }
  150. public static string UrlEncode(string str)
  151. {
  152. StringBuilder sb = new StringBuilder();
  153. byte[] byStr = System.Text.Encoding.UTF8.GetBytes(str); //默认是System.Text.Encoding.Default.GetBytes(str)
  154. for (int i = 0; i < byStr.Length; i++)
  155. {
  156. sb.Append(@"%" + Convert.ToString(byStr[i], 16));
  157. }
  158. return (sb.ToString());
  159. }
  160. public static string UrlDecode(string tmp)
  161. {
  162. try
  163. {
  164. string[] tmp1 = tmp.Split(new string[] { "\\u" }, StringSplitOptions.RemoveEmptyEntries);
  165. List<char> tmp2 = new List<char>();
  166. foreach (string s in tmp1)
  167. {
  168. tmp2.Add((char)Convert.ToInt16(s, 16));
  169. }
  170. string data = (new string(tmp2.ToArray()));
  171. return data;
  172. }
  173. catch (Exception)
  174. {
  175. return "";
  176. }
  177. }
  178. }
  179. }