using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Net; using System.Net.Http; using System.Text; using System.Threading.Tasks; namespace CPMeta { public class RestAPI { public static async Task PostAsync(string Url, REQUEST body) where REQUEST : class where RESPONSE : class { try { ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, sslPolicyErrors) => true; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; if (body != null) { var jsonBody = JsonConvert.SerializeObject(body); var contents = new StringContent(jsonBody, Encoding.UTF8, "application/json"); HttpClient client = new HttpClient(); client.Timeout = TimeSpan.FromMilliseconds(3000); var response = await client.PostAsync(Url, contents); var resContentStr = await response.Content.ReadAsStringAsync(); return JsonConvert.DeserializeObject(resContentStr); } } catch (Exception e) { Console.WriteLine("PostAsync Error"); } return default(RESPONSE); } public static async Task GetAsync(string Url) { try { ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, sslPolicyErrors) => true; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; HttpClient client = new HttpClient(); client.Timeout = TimeSpan.FromMilliseconds(3000); var response = await client.GetAsync(Url); var resContentStr = await response.Content.ReadAsStringAsync(); return JsonConvert.DeserializeObject(resContentStr); } catch(Exception e) { Console.WriteLine("GetAsync Error"); } return default(RESPONSE); } } }