Я спорю с собой о том, как обрабатывать исключения при вызове конечной точки rest-API. Я десериализирую контент прямо из потока, чтобы избежать выделения строки. Проблема, которая возникает, заключается в том, что если сервер возвращает внутреннюю ошибку сервера (500) с некоторой информацией в контенте, моя десериализация завершается неудачно из-за JSON, и если я вызываю responseMessage.EnsureSuccessStatusCode()
, я теряю информацию в контенте.
var responseMessage = await _httpClient.SendAsync(request).ConfigureAwait(false);
responseMessage.EnsureSuccessStatusCode();
using (var stream = await responseMessage.Content.ReadAsStreamAsync().ConfigureAwait(false))
using (var streamReader = new StreamReader(stream))
using (var reader = new JsonTextReader(streamReader))
{
return _jsonSerializer.Deserialize<List<string>>(reader);
}
Как обрабатывать сведения об исключениях, которые могут существовать в Контенте?