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); } }
public async Task TestPetsDelete() { WebApiRequestException ex = await Assert.ThrowsAsync <WebApiRequestException>(() => api.DeletePetAsync(9)); Assert.Equal("NoSuchPet", ex.Response); }