2017-03-17 13:12:34 +01:00
|
|
|
|
using Microsoft.Extensions.Logging;
|
|
|
|
|
using Newtonsoft.Json;
|
|
|
|
|
using System;
|
|
|
|
|
using System.Net.Http;
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
|
|
|
|
|
namespace WebMVC.Services.Utilities
|
|
|
|
|
{
|
2017-03-28 14:30:30 -07:00
|
|
|
|
public class StandardHttpClient : IHttpClient
|
2017-03-17 13:12:34 +01:00
|
|
|
|
{
|
|
|
|
|
private HttpClient _client;
|
|
|
|
|
private ILogger _logger;
|
|
|
|
|
public HttpClient Inst => _client;
|
2017-03-28 14:30:30 -07:00
|
|
|
|
public StandardHttpClient()
|
2017-03-17 13:12:34 +01:00
|
|
|
|
{
|
|
|
|
|
_client = new HttpClient();
|
2017-03-28 14:30:30 -07:00
|
|
|
|
_logger = new LoggerFactory().CreateLogger(nameof(ResilientHttpClient));
|
2017-03-17 13:12:34 +01:00
|
|
|
|
}
|
2017-03-21 12:51:25 +01:00
|
|
|
|
|
2017-03-20 14:18:20 -04:00
|
|
|
|
public Task<string> GetStringAsync(string uri) =>
|
|
|
|
|
_client.GetStringAsync(uri);
|
2017-03-17 13:12:34 +01:00
|
|
|
|
|
2017-03-20 14:18:20 -04:00
|
|
|
|
public Task<HttpResponseMessage> PostAsync<T>(string uri, T item)
|
2017-03-17 13:12:34 +01:00
|
|
|
|
{
|
|
|
|
|
var contentString = new StringContent(JsonConvert.SerializeObject(item), System.Text.Encoding.UTF8, "application/json");
|
2017-03-20 14:18:20 -04:00
|
|
|
|
return _client.PostAsync(uri, contentString);
|
2017-03-17 13:12:34 +01:00
|
|
|
|
}
|
|
|
|
|
|
2017-03-20 14:18:20 -04:00
|
|
|
|
public Task<HttpResponseMessage> DeleteAsync(string uri) =>
|
|
|
|
|
_client.DeleteAsync(uri);
|
2017-03-17 13:12:34 +01:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|