HttpRequestHelper.cs 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  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 PacsView3D
  9. {
  10. public static class HttpRequestHelper
  11. {
  12. /// <summary>
  13. /// Http Get Request
  14. /// </summary>
  15. /// <param name="url"></param>
  16. /// <returns></returns>
  17. public static string HttpGetRequest(string url)
  18. {
  19. string strGetResponse = string.Empty;
  20. try
  21. {
  22. var getRequest = CreateHttpRequest(url, "GET");
  23. var getResponse = getRequest.GetResponse() as HttpWebResponse;
  24. strGetResponse = GetHttpResponse(getResponse, "GET");
  25. }
  26. catch (Exception ex)
  27. {
  28. strGetResponse = ex.Message;
  29. }
  30. return strGetResponse;
  31. }
  32. /// <summary>
  33. /// Http Get Request Async
  34. /// </summary>
  35. /// <param name="url"></param>
  36. public static async void HttpGetRequestAsync(string url)
  37. {
  38. string strGetResponse = string.Empty;
  39. try
  40. {
  41. var getRequest = CreateHttpRequest(url, "GET");
  42. var getResponse = await getRequest.GetResponseAsync() as HttpWebResponse;
  43. strGetResponse = GetHttpResponse(getResponse, "GET");
  44. }
  45. catch (Exception ex)
  46. {
  47. strGetResponse = ex.Message;
  48. }
  49. //return strGetResponse;
  50. //Console.WriteLine("reslut:" + strGetResponse);
  51. }
  52. /// <summary>
  53. /// Http Post Request
  54. /// </summary>
  55. /// <param name="url"></param>
  56. /// <param name="postJsonData"></param>
  57. /// <returns></returns>
  58. public static string HttpPostRequest(string url, string postJsonData)
  59. {
  60. string strPostReponse = string.Empty;
  61. try
  62. {
  63. var postRequest = CreateHttpRequest(url, "POST", postJsonData);
  64. var postResponse = postRequest.GetResponse() as HttpWebResponse;
  65. strPostReponse = GetHttpResponse(postResponse, "POST");
  66. }
  67. catch (Exception ex)
  68. {
  69. strPostReponse = ex.Message;
  70. }
  71. return strPostReponse;
  72. }
  73. /// <summary>
  74. /// Http Post Request Async
  75. /// </summary>
  76. /// <param name="url"></param>
  77. /// <param name="postJsonData"></param>
  78. public static async void HttpPostRequestAsync(string url, string postData)
  79. {
  80. string strPostReponse = string.Empty;
  81. try
  82. {
  83. var postRequest = CreateHttpRequest(url, "POST", postData);
  84. var postResponse = await postRequest.GetResponseAsync() as HttpWebResponse;
  85. strPostReponse = GetHttpResponse(postResponse, "POST");
  86. }
  87. catch (Exception ex)
  88. {
  89. strPostReponse = ex.Message;
  90. }
  91. if (strPostReponse != "true")
  92. {
  93. Console.WriteLine("--> reslut : " + strPostReponse);
  94. Console.WriteLine(postData);
  95. }
  96. }
  97. private static HttpWebRequest CreateHttpRequest(string url, string requestType, params object[] strJson)
  98. {
  99. HttpWebRequest request = null;
  100. const string get = "GET";
  101. const string post = "POST";
  102. if (string.Equals(requestType, get, StringComparison.OrdinalIgnoreCase))
  103. {
  104. request = CreateGetHttpWebRequest(url);
  105. }
  106. if (string.Equals(requestType, post, StringComparison.OrdinalIgnoreCase))
  107. {
  108. request = CreatePostHttpWebRequest(url, strJson[0].ToString());
  109. }
  110. return request;
  111. }
  112. private static HttpWebRequest CreateGetHttpWebRequest(string url)
  113. {
  114. var getRequest = HttpWebRequest.Create(url) as HttpWebRequest;
  115. getRequest.Method = "GET";
  116. getRequest.Timeout = 50000;
  117. getRequest.ContentType = "text/html;charset=UTF-8";
  118. getRequest.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;
  119. return getRequest;
  120. }
  121. private static HttpWebRequest CreatePostHttpWebRequest(string url, string postData)
  122. {
  123. var postRequest = HttpWebRequest.Create(url) as HttpWebRequest;
  124. postRequest.KeepAlive = false;
  125. postRequest.Timeout = 5000;
  126. postRequest.Method = "POST";
  127. postRequest.ContentType = "application/x-www-form-urlencoded";
  128. postRequest.ContentLength = postData.Length;
  129. postRequest.AllowWriteStreamBuffering = false;
  130. StreamWriter writer = new StreamWriter(postRequest.GetRequestStream(), Encoding.ASCII);
  131. writer.Write(postData);
  132. writer.Flush();
  133. return postRequest;
  134. }
  135. private static string GetHttpResponse(HttpWebResponse response, string requestType)
  136. {
  137. var responseResult = "";
  138. const string post = "POST";
  139. string encoding = "UTF-8";
  140. if (string.Equals(requestType, post, StringComparison.OrdinalIgnoreCase))
  141. {
  142. encoding = response.ContentEncoding;
  143. if (encoding == null || encoding.Length < 1)
  144. {
  145. encoding = "UTF-8";
  146. }
  147. }
  148. using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding(encoding)))
  149. {
  150. responseResult = reader.ReadToEnd();
  151. }
  152. return responseResult;
  153. }
  154. private static string GetHttpResponseAsync(HttpWebResponse response, string requestType)
  155. {
  156. var responseResult = "";
  157. const string post = "POST";
  158. string encoding = "UTF-8";
  159. if (string.Equals(requestType, post, StringComparison.OrdinalIgnoreCase))
  160. {
  161. encoding = response.ContentEncoding;
  162. if (encoding == null || encoding.Length < 1)
  163. {
  164. encoding = "UTF-8";
  165. }
  166. }
  167. using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding(encoding)))
  168. {
  169. responseResult = reader.ReadToEnd();
  170. }
  171. return responseResult;
  172. }
  173. }
  174. }