/// <summary> /// Send a GET request to the specified Uri as an asynchronous operation. /// </summary> /// <param name="url">The Uri the request is sent to</param> /// <returns>The task object representing the asynchronous operation</returns> private async Task <HttpResponseMessage> GetResponse(string url) { HttpResponseMessage response = null; var requestUri = GetUrl(url); using (var request = CreateHttpRequestMessage(requestUri, HttpMethod.Get, null)) { var client = HttpClientSingleton.GetClient(); response = await client.SendAsync(request).ConfigureAwait(false); } return(response); }
private HttpClient GetClient() { return(HttpClientSingleton.GetClient()); //HttpClient output = null; //if (UseDefaultCredentials) //{ // output = new HttpClient(new HttpClientHandler() // { // UseDefaultCredentials = true // }); //} //else //{ // output = new HttpClient(); //} //return output; }
/// <summary> /// Sends an object to a web api endpoint using the POST Http verb /// </summary> /// <typeparam name="T">input generic param type</typeparam> /// <param name="url">The Uri the request is sent to.</param> /// <param name="payload">payload object</param> /// <param name="credentials">ApiCredentials</param> /// <returns>Response</returns> public async Task <Response <TOutput> > PostItemAsync <TInput, TOutput>(string url, TInput payload, ApiCredentials credentials = null) where TInput : new() where TOutput : new() { Validate(url, credentials); var output = new Response <TOutput>(); try { var requestUri = GetUrl(url); using (var request = CreateHttpRequestMessage(requestUri, HttpMethod.Post, null)) { var client = HttpClientSingleton.GetClient(); using (var response = await client.PostAsJsonAsync(requestUri, payload).ConfigureAwait(false)) { if (response.IsSuccessStatusCode) { response.EnsureSuccessStatusCode(); output.IsOk = true; output.StatusCode = response.StatusCode; GetResponseContent <TOutput>(output, response); } else { GetDetails(output, response); } } } } catch (Exception e) { HandleError(output, e); } return(output); }