新公司上班第二周,开始进军.Net Core,这方面的东西比较新,所以已经封装好的东西比较少,比如HttpClien之类的开源类库,找了NuGet好久,没有找到,所以先写个简陋的来用着先。
using System.Threading.Tasks; using System.Net.Http; using Newtonsoft.Json; using System.Net.Http.Headers;/// <summary>/// Http Method Helper/// </summary>public static class HttpHelper{private static HttpClient instance = null;public static HttpClient GetClient(){if (instance == null)instance = new HttpClient();return instance;}/// <summary>/// Get Method/// </summary>public static async Task<T> Get<T>(string url){try{var client = GetClient();var responseMsg = await client.GetAsync(url);if (responseMsg.IsSuccessStatusCode){string strJson = await responseMsg.Content.ReadAsStringAsync();return JsonConvert.DeserializeObject<T>(strJson);}else{return default(T);}}catch{instance = new HttpClient();return default(T);}}/// <summary>/// Post Method/// </summary>public static async Task<T> Post<T>(string url, dynamic para){try{if (para != null){var requestJson = JsonConvert.SerializeObject(para);HttpContent httpContent = new StringContent(requestJson);httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");var client = GetClient();var responseJson = await client.PostAsync(url, httpContent).Result.Content.ReadAsStringAsync();return JsonConvert.DeserializeObject<T>(responseJson);}return default(T);}catch{instance = new HttpClient();return default(T);}}}
调用测试:
//=======================================================
// .----.
// _.'__ `.
// .--(^)(^^)---/#\
// .' @ /###\
// : , #####
// `-..__.-' _.-\###/
// `;_: `"'
// .'"""""`.
// /, ya ,\\
// //向上吧!409 \\
// `-._______.-'
// ___`. | .'___
// (______|______)
//=======================================================