zijianhuang / webapiclientgen

Strongly Typed Client API Generators generate strongly typed client APIs in C# .NET and in TypeScript for jQuery and Angular 2+ from ASP.NET Web API and .NET Core Web API
MIT License
168 stars 38 forks source link

Optionally use EnsureSuccessStatusCodeEx in place of EnsureSuccessStatusCode #95

Closed zijianhuang closed 4 years ago

zijianhuang commented 4 years ago
    public class WebApiRequestException : HttpRequestException
    {
        public System.Net.HttpStatusCode StatusCode { get; private set; }

        public string Response { get; private set; }

        public System.Net.Http.Headers.MediaTypeHeaderValue ContentType { get; private set; }

        public WebApiRequestException(string message, System.Net.HttpStatusCode statusCode, string response, System.Net.Http.Headers.MediaTypeHeaderValue contentType) : base(message)
        {
            StatusCode = statusCode;
            Response = response;
            ContentType = contentType;
        }
    }

    public static class ResponseMessageExtensions
    {
        public static void EnsureSuccessStatusCodeEx(this HttpResponseMessage responseMessage)
        {
            if (!responseMessage.IsSuccessStatusCode)
            {
                var responseText = responseMessage.Content.ReadAsStringAsync().Result;
                var contentType = responseMessage.Content.Headers.ContentType;
                throw new WebApiRequestException(responseMessage.ReasonPhrase, responseMessage.StatusCode, responseText, contentType);
            }
        }
    }