示例#1
0
        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);
        }
示例#3
0
        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);
        }
示例#4
0
        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);
        }