public class HttpHelpers
{
////// Post请求 /// /// 链接地址 /// 数据 /// 超时时间(秒) ///public static async Task PostAsync(string url, string jsonStr = "", IList headers = null, int timeout = 20) { try { using (var client = new HttpClient()) { if (headers != null && headers.Any()) { foreach (var item in headers) { client.DefaultRequestHeaders.Add(item.Name, item.Value); } } client.Timeout = new TimeSpan(0, 0, timeout); var content = new StringContent(jsonStr, Encoding.UTF8); content.Headers.ContentType = new MediaTypeHeaderValue("application/json"); var res = await client.PostAsync(url, content); return await res.Content.ReadAsStringAsync(); } } catch (Exception ex) { throw ex; } } public static async Task PostAsync(string url, object reqObj, IList headers = null, int timeout = 20) { return await PostAsync(url, JsonConvert.SerializeObject(reqObj ?? string.Empty), headers, timeout); } /// /// Post请求 /// /// 链接地址 /// 数据 /// 超时时间(毫秒) ///public static string Post(string url, string jsonStr = "", int timeout = 5000, int type = 0) { try { HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(url); Encoding encoding = Encoding.UTF8; byte[] bs = Encoding.UTF8.GetBytes(jsonStr); string responseData = String.Empty; req.Method = "POST"; req.ContentType = type == 0 ? "application/json; charset=utf-8" : "application/x-www-form-urlencoded"; req.ContentLength = bs.Length; req.Timeout = timeout; using (Stream reqStream = req.GetRequestStream()) { reqStream.Write(bs, 0, bs.Length); reqStream.Close(); } using (HttpWebResponse response = (HttpWebResponse)req.GetResponse()) { using (StreamReader reader = new StreamReader(response.GetResponseStream(), encoding)) { responseData = reader.ReadToEnd().ToString(); } return responseData; } } catch (Exception ex) { throw ex; } } /// /// POST同步请求方法 /// /// 请求的URL /// 请求的POST JOSN值 /// 默认30S ///public static string HttpPost(string url, string strJson, int timeout = 30000) { return HttpPost(url, strJson, null, timeout); } /// /// POST同步请求方法 /// /// 请求的URL /// 请求的POST JOSN值 /// 默认30S ///public static string HttpPost(string url, string strJson, IList headers, int timeout = 30000) { try { HttpClient client = new HttpClient(); if (headers != null && headers.Any()) { foreach (var item in headers) { client.DefaultRequestHeaders.Add(item.Name, item.Value); } } HttpContent content = new StringContent(strJson); content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json"); Task res = client.PostAsync(url, content); if (res.Result.StatusCode == HttpStatusCode.OK) { string str = res.Result.Content.ReadAsStringAsync().Result; return str; } else throw new Exception(res.Result.Content.ReadAsStringAsync().Result); } catch (Exception ex) { throw ex; } } /// /// Get请求 /// /// 地址 /// 超时时间(秒) ///public static async Task GetAsync(string url, int timeout = 5) { try { var responseMessage = new HttpResponseMessage(); using (var client = new HttpClient()) { client.Timeout = new TimeSpan(0, 0, timeout); responseMessage = await client.GetAsync(url); } return await responseMessage.Content.ReadAsStringAsync(); } catch (Exception ex) { throw ex; } } /// /// Get请求 /// /// ///public static string Get(string url) { return Get(url, null); } /// /// Get请求 /// /// ///public static string Get(string url, IList headers) { string result = ""; try { var httpclient = new HttpClient(); if (headers != null && headers.Any()) { foreach (var item in headers) { httpclient.DefaultRequestHeaders.Add(item.Name, item.Value); } } var response = httpclient.GetAsync(url).Result; if (response.IsSuccessStatusCode) { Stream myResponseStream = response.Content.ReadAsStreamAsync().Result; StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8")); result = myStreamReader.ReadToEnd(); myStreamReader.Close(); myResponseStream.Close(); } } catch (Exception ex) { throw ex; } return result; } public class RequestHeader { public string Name { get; set; } public string Value { get; set; } } }



