Open mpiliszcz opened 7 years ago
When network issues occur, e.g. no network connection, the low level error code is not returned. This could be the solution:
private SentMessageData SendMessage(RestRequest request) { request.RequestFormat = DataFormat.Json; request.JsonSerializer = NewtonsoftJsonSerializer.Default; var result = WebClient.Execute(request); if (result.ResponseStatus == ResponseStatus.Completed && (result.StatusCode == HttpStatusCode.NoContent)) return null; if (result.ResponseStatus == ResponseStatus.Completed && result.StatusCode == HttpStatusCode.Unauthorized) throw new UnauthorizedAccessException("MailJet returned an HTTP 401 exception, please check your credentials"); if (result.ResponseStatus == ResponseStatus.Completed && result.StatusCode >= HttpStatusCode.BadRequest) throw new HttpException((int)result.StatusCode, result.StatusCode.ToString()); if (result.ErrorMessage != null && String.IsNullOrWhiteSpace(result.Content)) { throw new Exception(result.ErrorMessage); } else { var error = JsonConvert.DeserializeObject<ErrorResponse>(result.Content); if (!String.IsNullOrWhiteSpace(error.ErrorInfo) || !String.IsNullOrWhiteSpace(error.ErrorMessage)) throw new Exception(String.Format("{0}\n{1}", error.ErrorMessage, error.ErrorMessage)); } var data = JsonConvert.DeserializeObject<SentMessageData>(result.Content); return data; }
When network issues occur, e.g. no network connection, the low level error code is not returned. This could be the solution: