public async Task <TResponse> SendAsync <TResponse>(HttpMethod method, string url, object body = null) { var request = new HttpRequestMessage(); request.Method = method; request.RequestUri = new Uri(Client.BaseAddress, url); if (!_token.IsEmpty()) { Client.DefaultRequestHeaders.Add("Authorization", "Bearer " + _token); } if (body != null) { var json = SwizzerJsonSerializer.Serialize(body); request.Content = new StringContent(json, Encoding.UTF8, "application/json"); } var httpResponseMessage = await Client.SendAsync(request); var responseString = await httpResponseMessage.Content.ReadAsStringAsync(); httpResponseMessage.IsSuccessStatusCode.Should().BeTrue(responseString); return(SwizzerJsonSerializer.Deserialize <TResponse>(responseString)); }
private async Task HandleException(Exception ex, HttpContext context) { var message = ErrorCodes.Unknow; var statusCode = HttpStatusCode.InternalServerError; switch (ex) { case SwizzerSerwerException swizzerEx: message = swizzerEx.ErrorCode; statusCode = GetStatusCode(swizzerEx); break; } var errorDto = new ErrorDto { Exception = ex, ErrorCode = message }; var json = SwizzerJsonSerializer.Serialize(errorDto); context.Response.ContentType = "application/json"; context.Response.StatusCode = (int)statusCode; await context.Response.WriteAsync(json); }
private void HandleException(Exception ex, HttpContext context, RequestDelegate next) { var message = ServerErrorCodes.UnauthorizedAccess; var statusCode = HttpStatusCode.InternalServerError; switch (ex) { case SwizzerServerException swizzer: statusCode = GetStatusCode(swizzer); message = swizzer.ErrorCode; break; } var error = new ErrorDto { Exception = ex, ErrorCode = message }; var json = SwizzerJsonSerializer.Serialize(error); context.Response.ContentType = "application/json"; context.Response.StatusCode = (int)statusCode; context.Response.WriteAsync(json); }
public async Task <TResponse> SendAsync <TResponse>(HttpMethod method, string endpoint, object body = null) { var webRequest = new HttpRequestMessage { Method = method, RequestUri = new Uri($"{_apiSettings.Address}{endpoint}") }; if (!_apiSettings.Token.IsEmpty()) { webRequest.Headers.Add("Authorization", $"Bearer {_apiSettings.Token}"); } if (body != null) { var json = SwizzerJsonSerializer.Serialize(body); var content = new StringContent(json, Encoding.UTF8, "application/json"); webRequest.Content = content; } var response = await _httpClient.SendAsync(webRequest); var responseContent = await response.Content.ReadAsStringAsync(); if (response.IsSuccessStatusCode) { return(SwizzerJsonSerializer.Deserialize <TResponse>(responseContent)); } if (response.StatusCode == System.Net.HttpStatusCode.Unauthorized) { throw new SwizzerClientException(ServerErrorCodes.UnauthorizedAccess); } var error = SwizzerJsonSerializer.Deserialize <ErrorDto>(responseContent); throw new SwizzerClientException(error.ErrorCode); }