using System.Collections.Generic; using System.IO; using System.Net; using System.Net.Http; using System.Text; using System.Threading.Tasks; namespace GxPress.Common.Http { /// /// HttpClient /// public static class HttpClientHelper { /// /// get /// /// /// /// public static async Task GetHeadersAsync(string url, Dictionary headers) { HttpClient httpClient = new HttpClient(); //http对象 //添加header foreach (var header in headers) { httpClient.DefaultRequestHeaders.Add(header.Key, header.Value); } var response = await httpClient.GetAsync(url); return response; } /// /// 根据地址下载 /// /// /// public static async Task GetByteArrayAsync(string url) { HttpClient httpClient = new HttpClient(); //http对象 var response = await httpClient.GetByteArrayAsync(url); return response; } /// /// post /// /// /// json /// /// public static async Task PostAsync(string url, object jsonObj, Dictionary headers = null) { HttpClient httpClient = new HttpClient(); //http对象 if (headers != null) foreach (var header in headers) { httpClient.DefaultRequestHeaders.Add(header.Key, header.Value); } HttpResponseMessage response = await httpClient.PostAsync(url, new JsonContent(jsonObj)); return response; } /// /// rest删除 /// /// /// /// public static async Task DeleteAsync(string url, Dictionary headers = null) { HttpClient httpClient = new HttpClient(); //http对象 if (headers != null) foreach (var header in headers) { httpClient.DefaultRequestHeaders.Add(header.Key, header.Value); } HttpResponseMessage response = await httpClient.DeleteAsync(url); return response; } /// /// 返回JSon数据 /// /// 要处理的JSON数据 /// 要提交的URL /// 返回的JSON处理字符串 public static string GetResponseData(string JSONData, string Url) { try { byte[] bytes = Encoding.UTF8.GetBytes(JSONData); var request = (HttpWebRequest)WebRequest.Create(Url); request.Method = "POST"; request.ContentLength = bytes.Length; request.ContentType = "text/xml"; Stream reqstream = request.GetRequestStream(); reqstream.Write(bytes, 0, bytes.Length); //声明一个HttpWebRequest请求 request.Timeout = 90000; //设置连接超时时间 //request.Headers.Set("Pragma", "no-cache"); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); Stream streamReceive = response.GetResponseStream(); Encoding encoding = Encoding.UTF8; StreamReader streamReader = new StreamReader(streamReceive, encoding); string strResult = streamReader.ReadToEnd(); streamReceive.Dispose(); streamReader.Dispose(); return strResult; } catch (System.Exception) { return ""; } return ""; } } }