public static async Task <ApiRequestException> FromResponseAsync(HttpResponseMessage response, Exception inner = null) { var content = await response.Content.ReadAsStringAsync(); var exception = new ApiRequestException(response.StatusCode, inner); try { exception.Content = JsonConvert.DeserializeObject(content); } catch (Exception) { exception.Content = content; } return(exception); }
private async Task <TResponse> DeserializeAsync <TResponse>(HttpResponseMessage response) { if (!response.IsSuccessStatusCode) { throw await ApiRequestException.FromResponseAsync(response); } try { using var reader = new StreamReader(await response.Content.ReadAsStreamAsync()); using var jsonReader = new JsonTextReader(reader); return(_serializer.Deserialize <TResponse>(jsonReader)); } catch (Exception e) { throw await ApiRequestException.FromResponseAsync(response, e); } }