async public Task <StringBody> Post(string url, string json) { const string JSON_MEDIA_TYPE = "application/json"; var content = string.Empty; var bodyResponse = new StringBody(); using (var client = CreateClient(url)) { client.AcceptJson(); var body = new StringContent(json); body.Headers.ContentType = new MediaTypeHeaderValue(JSON_MEDIA_TYPE); var response = await client.PostAsync(url, body); if (response.Content != null) { content = await response.Content.ReadAsStringAsync(); } Trace(url, content, json); if (!response.IsSuccessStatusCode) { throw new HttpException(response.ReasonPhrase, response.StatusCode, content); } var headers = response.GetHeaders(); bodyResponse = new StringBody(content); bodyResponse.Headers.AddRange(headers); } return(bodyResponse); }
async public Task <StringBody> Post(string url, IDictionary <string, string> form) { if (form == null) { form = new Dictionary <string, string>(); } var bodyResponse = new StringBody(); using (var client = CreateClient(url)) { client.AcceptJson(); var body = new FormUrlEncodedContent(form); var response = await client.PostAsync(url, body); string content = await response?.Content?.ReadAsStringAsync(); Trace(url, content, form.ToString()); if (!response.IsSuccessStatusCode) { throw new HttpException(response.ReasonPhrase, response.StatusCode, content); } var headers = response.GetHeaders(); bodyResponse = new StringBody(content); bodyResponse.Headers.AddRange(headers); } return(bodyResponse); }
async public Task <StringBody> Get(string url) { var content = string.Empty; var bodyResponse = new StringBody(); using (var client = CreateClient(url)) { var response = await client.GetAsync(url); if (response.Content != null) { content = await response.Content.ReadAsStringAsync(); } Trace(url, content, string.Empty); if (!response.IsSuccessStatusCode) { throw new HttpException(response.ReasonPhrase, response.StatusCode, content); } var headers = response.GetHeaders(); bodyResponse = new StringBody(content); bodyResponse.Headers.AddRange(headers); } return(bodyResponse); }
async Task <HttpBody <T> > GetApi <T>(string resourceOrUrl, object param) where T : class { HttpBody <T> result; try { // Builds the url string url = param.ToQueryString(resourceOrUrl); // Gets JSON and parse the result StringBody response = await HttpService.Get(url); T data = JsonConvert.DeserializeObject <T>(response.Content); result = new HttpBody <T>(data, response); } catch (HttpException) { throw; } catch (Exception ex) { throw new HttpException(ex); } return(result); }