public async Task <T> SendAsync <T>(ERestCall method, T payload = null) where T : class { T result = null; using (var httpClient = new HttpClient()) { var request = new HttpRequestMessage(Fatory(method), new Uri(_uri)); var stringPayload = JsonConvert.SerializeObject(payload); request.Content = new StringContent(stringPayload, Encoding.UTF8, "application/json"); var response = await httpClient.SendAsync(request); response.EnsureSuccessStatusCode(); await response.Content.ReadAsStringAsync().ContinueWith((Task <string> x) => { if (x.IsFaulted) { throw x.Exception; } result = JsonConvert.DeserializeObject <T>(x.Result); }); } return(result); }
private HttpMethod Fatory(ERestCall method) { switch (method) { case ERestCall.Get: return(HttpMethod.Get); case ERestCall.Post: return(HttpMethod.Post); default: throw new AppBaseException("Invalid Operation!"); } }