|
|
@ -5,7 +5,6 @@ using Newtonsoft.Json.Serialization; |
|
|
|
using System.Net; |
|
|
|
using System.Net.Http; |
|
|
|
using System.Net.Http.Headers; |
|
|
|
using System.Text; |
|
|
|
using System.Threading.Tasks; |
|
|
|
using System; |
|
|
|
|
|
|
@ -23,7 +22,6 @@ namespace eShopOnContainers.Core.Services.RequestProvider |
|
|
|
DateTimeZoneHandling = DateTimeZoneHandling.Utc, |
|
|
|
NullValueHandling = NullValueHandling.Ignore |
|
|
|
}; |
|
|
|
|
|
|
|
_serializerSettings.Converters.Add(new StringEnumConverter()); |
|
|
|
} |
|
|
|
|
|
|
@ -33,7 +31,6 @@ namespace eShopOnContainers.Core.Services.RequestProvider |
|
|
|
HttpResponseMessage response = await httpClient.GetAsync(uri); |
|
|
|
|
|
|
|
await HandleResponse(response); |
|
|
|
|
|
|
|
string serialized = await response.Content.ReadAsStringAsync(); |
|
|
|
|
|
|
|
TResult result = await Task.Run(() => |
|
|
@ -56,7 +53,6 @@ namespace eShopOnContainers.Core.Services.RequestProvider |
|
|
|
HttpResponseMessage response = await httpClient.PostAsync(uri, content); |
|
|
|
|
|
|
|
await HandleResponse(response); |
|
|
|
|
|
|
|
string serialized = await response.Content.ReadAsStringAsync(); |
|
|
|
|
|
|
|
TResult result = await Task.Run(() => |
|
|
@ -65,61 +61,21 @@ namespace eShopOnContainers.Core.Services.RequestProvider |
|
|
|
return result; |
|
|
|
} |
|
|
|
|
|
|
|
public Task<TResult> PostAsync<TResult>(string uri, TResult data, string token = "") |
|
|
|
{ |
|
|
|
return PostAsync<TResult, TResult>(uri, data, token); |
|
|
|
} |
|
|
|
|
|
|
|
public async Task<TResult> PostAsync<TRequest, TResult>(string uri, TRequest data, string token = "") |
|
|
|
{ |
|
|
|
HttpClient httpClient = CreateHttpClient(token); |
|
|
|
string serialized = await Task.Run(() => JsonConvert.SerializeObject(data, _serializerSettings)); |
|
|
|
var content = new StringContent(serialized, Encoding.UTF8, "application/json"); |
|
|
|
HttpResponseMessage response = await httpClient.PostAsync(uri, content); |
|
|
|
|
|
|
|
await HandleResponse(response); |
|
|
|
|
|
|
|
string responseData = await response.Content.ReadAsStringAsync(); |
|
|
|
|
|
|
|
return await Task.Run(() => JsonConvert.DeserializeObject<TResult>(responseData, _serializerSettings)); |
|
|
|
} |
|
|
|
|
|
|
|
public Task<TResult> PutAsync<TResult>(string uri, TResult data, string token = "") |
|
|
|
{ |
|
|
|
return PutAsync<TResult, TResult>(uri, data, token); |
|
|
|
} |
|
|
|
|
|
|
|
public async Task<TResult> PutAsync<TRequest, TResult>(string uri, TRequest data, string token = "") |
|
|
|
{ |
|
|
|
HttpClient httpClient = CreateHttpClient(token); |
|
|
|
string serialized = await Task.Run(() => JsonConvert.SerializeObject(data, _serializerSettings)); |
|
|
|
HttpResponseMessage response = await httpClient.PutAsync(uri, new StringContent(serialized, Encoding.UTF8, "application/json")); |
|
|
|
|
|
|
|
await HandleResponse(response); |
|
|
|
|
|
|
|
string responseData = await response.Content.ReadAsStringAsync(); |
|
|
|
|
|
|
|
return await Task.Run(() => JsonConvert.DeserializeObject<TResult>(responseData, _serializerSettings)); |
|
|
|
} |
|
|
|
|
|
|
|
public async Task DeleteAsync(string uri, string token = "") |
|
|
|
{ |
|
|
|
HttpClient httpClient = CreateHttpClient(token); |
|
|
|
|
|
|
|
await httpClient.DeleteAsync(uri); |
|
|
|
} |
|
|
|
|
|
|
|
private HttpClient CreateHttpClient(string token = "") |
|
|
|
{ |
|
|
|
var httpClient = new HttpClient(); |
|
|
|
|
|
|
|
httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); |
|
|
|
|
|
|
|
if (!string.IsNullOrEmpty(token)) |
|
|
|
{ |
|
|
|
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token); |
|
|
|
} |
|
|
|
|
|
|
|
return httpClient; |
|
|
|
} |
|
|
|
|
|
|
@ -140,8 +96,8 @@ namespace eShopOnContainers.Core.Services.RequestProvider |
|
|
|
{ |
|
|
|
var content = await response.Content.ReadAsStringAsync(); |
|
|
|
|
|
|
|
if (response.StatusCode == HttpStatusCode.Forbidden |
|
|
|
|| response.StatusCode == HttpStatusCode.Unauthorized) |
|
|
|
if (response.StatusCode == HttpStatusCode.Forbidden || |
|
|
|
response.StatusCode == HttpStatusCode.Unauthorized) |
|
|
|
{ |
|
|
|
throw new ServiceAuthenticationException(content); |
|
|
|
} |
|
|
|