Beispiel #1
0
        public static ResponceInfo GetResponce(this Exception ex, RequestInfo request)
        {
            if (ex is FlurlException)
            {
                if (((FlurlException)ex).ExceptionName == (typeof(FlurlHttpTimeoutException)).Name)
                {
                    return(new ResponceInfo
                    {
                        Headers = null,
                        Content = null,
                        StatusCode = System.Net.HttpStatusCode.GatewayTimeout,
                        Request = request
                    });
                }

                if (((FlurlException)ex).ExceptionName == (typeof(FlurlHttpException)).Name)
                {
                    var exception = (((FlurlException)ex).Exception as FlurlHttpException)?.Call.Response;
                    var content   = exception?.ResponseMessage.Content.ReadAsStringAsync().Result;

                    var responce = new ResponceInfo
                    {
                        Headers    = null,
                        Content    = content,
                        StatusCode = exception.ResponseMessage.StatusCode,
                        Request    = request
                    };

                    Log.Logger().LogInformation($"{Message.CreateMessage(responce)}. {ex}");
                    return(responce);
                }
            }
            return(null);
        }
Beispiel #2
0
 public static string CreateMessage(this ResponceInfo responce)
 {
     return(responce.Content switch
     {
         null => $"Responce: {responce.Request.Url} status: {responce.StatusCode}",
         _ => responce.Content.TryParseToXml()
             ? $"Responce: {responce.Request.Url} status: {responce.StatusCode} and content: {Environment.NewLine} {Converter.CreateXMLEscapedString(responce.Content.ToXml())}"
             : $"Responce: {responce.Request.Url} status: {responce.StatusCode} and content: {Environment.NewLine} {responce.Content}"
     });
        public static ResponceInfo GetResponce(this Exception ex, RequestInfo request)
        {
            if (ex is not FlurlException flurlException)
            {
                return(null);
            }
            switch (flurlException.ExceptionName)
            {
            case nameof(FlurlHttpTimeoutException):
                return(new ResponceInfo
                {
                    Headers = null,
                    Content = null,
                    StatusCode = System.Net.HttpStatusCode.GatewayTimeout,
                    Request = request
                });

            case nameof(FlurlHttpException):
            {
                var exception = (flurlException.Exception as FlurlHttpException)?.Call.Response;
                var content   = exception?.ResponseMessage.Content.ReadAsStringAsync().Result;

                var responce = new ResponceInfo
                {
                    Headers    = null,
                    Content    = content,
                    StatusCode = exception.ResponseMessage.StatusCode,
                    Request    = request
                };

                Log.Logger().LogInformation($"{responce.CreateMessage()}. \n\nInner exception: {ex}");
                return(responce);
            }

            default:
                return(null);
            }
        }
Beispiel #4
0
 public static string CreateMessage(this ResponceInfo responce)
 {
     return(responce.Content == null ?
            $"Responce: {responce.Request.Url} status: {responce.StatusCode}" :
            $"Responce: {responce.Request.Url} status: {responce.StatusCode} and content: {Environment.NewLine} {responce.Content}");
 }