Пример #1
0
        static void LogWebApiRequestError(WebApiRequestException ex)
        {
            LogInfoOfCaller();

            Log.Error("{@error}", ex);

            NewBlankLines(1);

            LogError("Below a resume of the error:");

            NewBlankLines(1);

            LogError($"Exception type: {ex.GetType().FullName}");
            LogError($"Error message: {ex.Message}");

            var typeOfContent = ex.NoSuccessResponse.GetType();

            LogError($"Type of response content: {typeOfContent.FullName}");

            if (typeOfContent == typeof(NoSuccessResponseWithJsonStringContent))
            {
                var noSuccessResponse = (NoSuccessResponseWithJsonStringContent)ex.NoSuccessResponse;

                LogError(noSuccessResponse.ReasonPhrase);
                LogError(((int)noSuccessResponse.HttpStatusCode).ToString());
                LogError(noSuccessResponse.ContentMediaType.ToString());
                LogError(noSuccessResponse.Content);
            }
            else if (typeOfContent == typeof(NoSuccessResponseWithJsonExceptionContent))
            {
                var noSuccessResponse = (NoSuccessResponseWithJsonExceptionContent)ex.NoSuccessResponse;

                LogError(noSuccessResponse.ReasonPhrase);
                LogError(((int)noSuccessResponse.HttpStatusCode).ToString());

                var _exceptionJsonFormat = noSuccessResponse.Content;
                while (_exceptionJsonFormat != null)
                {
                    LogError(_exceptionJsonFormat.GetType().FullName);
                    LogError(_exceptionJsonFormat.Message);
                    LogError(_exceptionJsonFormat.Source);
                    LogError(_exceptionJsonFormat.StackTrace);

                    NewBlankLines(1);

                    _exceptionJsonFormat = _exceptionJsonFormat.InnerMiddlewareException;
                }
            }
            else if (typeOfContent == typeof(NoSuccessResponseWithHtmlContent))
            {
                var noSuccessResponse = (NoSuccessResponseWithHtmlContent)ex.NoSuccessResponse;

                LogError(noSuccessResponse.ReasonPhrase);
                LogError(((int)noSuccessResponse.HttpStatusCode).ToString());
                LogError(noSuccessResponse.Content);
            }
            else if (typeOfContent == typeof(NoSuccessResponseWithEmptyContent))
            {
                var noSuccessResponse = (NoSuccessResponseWithEmptyContent)ex.NoSuccessResponse;

                LogError(noSuccessResponse.ReasonPhrase);
                LogError(((int)noSuccessResponse.HttpStatusCode).ToString());
                LogError(noSuccessResponse.WebServer);
                LogError(noSuccessResponse.Date);
            }
        }
Пример #2
0
        public async Task TestPetsDelete()
        {
            WebApiRequestException ex = await Assert.ThrowsAsync <WebApiRequestException>(() => api.DeletePetAsync(9));

            Assert.Equal("NoSuchPet", ex.Response);
        }