using System.Text; namespace SlnMesnac.WCS.Global { public class HttpHelper { public static string SendPostMessage(string ip, int port, string url, string message, string contentType = "application/Text") { string retsult = HttpPost("http://" + ip + ":" + port + "/" + url, message, contentType, 4, null); return retsult; } public static string SendGetMessage(string ip, int port, string url) { string retsult = HttpGet("http://" + ip + ":" + port + "/" + url); return retsult; } /// /// 发起POST同步请求 /// /// /// /// /// application/xml、application/json、application/text、application/x-www-form-urlencoded /// 填充消息头 /// public static string HttpPost(string url, string postData = null, string contentType = null, int timeOut = 5, Dictionary headers = null) { postData = postData ?? ""; using (HttpClient client = new HttpClient()) { client.Timeout = new TimeSpan(0, 0, timeOut); if (headers != null) { foreach (var header in headers) client.DefaultRequestHeaders.Add(header.Key, header.Value); } using (HttpContent httpContent = new StringContent(postData, Encoding.UTF8)) { if (contentType != null) httpContent.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue(contentType); HttpResponseMessage response = client.PostAsync(url, httpContent).Result; return response.Content.ReadAsStringAsync().Result; } } } /// /// 发起POST异步请求 /// /// /// /// application/xml、application/json、application/text、application/x-www-form-urlencoded /// 填充消息头 /// public static async Task HttpPostAsync(string url, string postData = null, string contentType = null, int timeOut = 30, Dictionary headers = null) { postData = postData ?? ""; using (HttpClient client = new HttpClient()) { client.Timeout = new TimeSpan(0, 0, timeOut); if (headers != null) { foreach (var header in headers) client.DefaultRequestHeaders.Add(header.Key, header.Value); } using (HttpContent httpContent = new StringContent(postData, Encoding.UTF8)) { if (contentType != null) httpContent.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue(contentType); HttpResponseMessage response = await client.PostAsync(url, httpContent); return await response.Content.ReadAsStringAsync(); } } } /// /// 发起GET同步请求 /// /// /// /// /// public static string HttpGet(string url, Dictionary headers = null) { using (HttpClient client = new HttpClient()) { if (headers != null) { foreach (var header in headers) client.DefaultRequestHeaders.Add(header.Key, header.Value); } HttpResponseMessage response = client.GetAsync(url).Result; return response.Content.ReadAsStringAsync().Result; } } /// /// 发起GET异步请求 /// /// /// /// /// public static async Task HttpGetAsync(string url, Dictionary headers = null) { using (HttpClient client = new HttpClient()) { if (headers != null) { foreach (var header in headers) client.DefaultRequestHeaders.Add(header.Key, header.Value); } HttpResponseMessage response = await client.GetAsync(url); return await response.Content.ReadAsStringAsync(); } } /// /// 发起GET同步请求 /// /// /// /// /// public static string HttpDelete(string url, Dictionary headers = null) { using (HttpClient client = new HttpClient()) { if (headers != null) { foreach (var header in headers) client.DefaultRequestHeaders.Add(header.Key, header.Value); } HttpResponseMessage response = client.DeleteAsync(url).Result; return response.Content.ReadAsStringAsync().Result; } } /// /// 发起GET异步请求 /// /// /// /// /// public static async Task HttpDeleteAsync(string url, Dictionary headers = null) { using (HttpClient client = new HttpClient()) { if (headers != null) { foreach (var header in headers) client.DefaultRequestHeaders.Add(header.Key, header.Value); } HttpResponseMessage response = await client.DeleteAsync(url); return await response.Content.ReadAsStringAsync(); } } } }