Getting Web API Exception Details from a HttpResponseMessage

Instead I have added an extension method to HttpResponseMessage to parse the details of the exception from the Json in the response.Content.

using System.Net.Http;
using System.Threading.Tasks;
using Newtonsoft.Json;

namespace SimpleWebApiClient
public static class HttpResponseMessageExtension
public static async Task<ExceptionResponse> ExceptionResponse(this HttpResponseMessage httpResponseMessage)
string responseContent = await httpResponseMessage.Content.ReadAsStringAsync();
ExceptionResponse exceptionResponse = JsonConvert.DeserializeObject<ExceptionResponse>(responseContent);
return exceptionResponse;

public class ExceptionResponse
public string Message { get; set; }
public string ExceptionMessage { get; set; }
public string ExceptionType { get; set; }
public string StackTrace { get; set; }
public ExceptionResponse InnerException { get; set; }

Usage is simple

HttpResponseMessage response = await httpClient.GetAsync(query).ConfigureAwait(false);

if (response.IsSuccessStatusCode)
// return the value

// But if an error occurred read the details
ExceptionResponse exceptionResponse = response.ExceptionResponse();