using System; using System.Collections.Generic; using System.IO; using System.Net.Http; using System.Text; using System.Threading; using System.Threading.Tasks; namespace Estsh.Core.Util { public class HttpClientHelper { /// /// 通过Get请求数据 /// /// public static async Task HttpGetMathod(string url) { using (HttpClient httpClient = new HttpClient() { Timeout = TimeSpan.FromSeconds(3000) }) { var response = await httpClient.GetAsync(url); var result = await response.Content.ReadAsStringAsync(); return result; } } /// /// 通过Get请求数据 /// /// public static async Task HttpGetMathod(string url, Dictionary param) { using (HttpClient httpClient = new HttpClient() { Timeout = TimeSpan.FromSeconds(3000) }) { StringBuilder buffer = new StringBuilder("?"); int i = 0; foreach (string key in param.Keys) { if (i > 0) { buffer.AppendFormat("&{0}={1}", key, param[key]); } else { buffer.AppendFormat("{0}={1}", key, param[key]); } i++; } var response = await httpClient.GetAsync(url + buffer.ToString()); var result = await response.Content.ReadAsStringAsync(); return result; } } /// /// 使用Post请求数据:application/json /// /// public static string HttpPostByJsonMathod(string url, object model) { try { using (HttpClient httpClient = new HttpClient()) { var response = httpClient.PostAsync( url, new StringContent( Newtonsoft.Json.JsonConvert.SerializeObject(model), Encoding.UTF8, "application/json")).GetAwaiter().GetResult(); if (response.StatusCode == System.Net.HttpStatusCode.OK) { string result = response.Content.ReadAsStringAsync().Result; return result; } else { return string.Empty; } } } catch (System.Exception ex) { LogHelper.Error("调用API接口错误:" + url, ex); return string.Empty; } } } }