/// <summary> /// Performs a HTTP Post with a result /// </summary> /// <typeparam name="TOut">Output Type</typeparam> /// <typeparam name="TIn">Input Type</typeparam> /// <param name="inputParams">Input object</param> /// <returns>Output object</returns> public virtual async Task <TOut> Post <TOut, TIn>(TIn inputParams) { TOut returnValue = default(TOut); using (var client = new HttpClient(_httpMessageHandler, false)) { Init(client); ResponseMessage = await client.PostAsync(_rightUrl, inputParams, JsonMediaTypeFormatterFactory.Get(JsonMediaTypeFormatterMode.TypeNameHandlingAll)); //ResponseMessage = await client.PostAsJsonAsync(_rightUrl, inputParams); if (!ResponseMessage.IsSuccessStatusCode) { var responseErrorPhrase = ResponseMessage.ReasonPhrase; ResponseMessage.Dispose(); throw new Exception(responseErrorPhrase); } var mediaTypeFormatters = new MediaTypeFormatter[] { JsonMediaTypeFormatterFactory.Get(JsonMediaTypeFormatterMode.TypeNameHandlingAll) }; returnValue = await ResponseMessage.Content.ReadAsAsync <TOut>(mediaTypeFormatters); //if (ResponseMessage.IsSuccessStatusCode) // return await ResponseMessage.Content.ReadAsAsync<TOut>(new MediaTypeFormatter[] { JsonMediaTypeFormatterFactory.Get(JsonMediaTypeFormatterMode.TypeNameHandlingAll) }); //else throw new Exception(ResponseMessage.ReasonPhrase); } ResponseMessage.Dispose(); return(returnValue); }
/// <summary> /// Performs a HTTP Post without a result /// </summary> /// <typeparam name="TIn">Input Type</typeparam> /// <param name="inputParams">Input object</param> /// <returns>Output object</returns> public virtual async Task Post <TIn>(TIn inputParams) { using (var client = new HttpClient(_httpMessageHandler, false)) { Init(client); ResponseMessage = await client.PostAsync(_rightUrl, inputParams, JsonMediaTypeFormatterFactory.Get(JsonMediaTypeFormatterMode.TypeNameHandlingAll)); ResponseMessage.Dispose(); } }