У нас есть 2 бэкэнд-сервиса, взаимодействующих друг с другом, оба они используют. net framework с System. net .Http library
Один из них возвращает статус HTTP код 503 с некоторым ответным сообщением («данные недоступны») при выполнении определенного условия, как показано ниже на скриншоте
код контроллера реализация выглядит следующим образом:
HttpResponseMessage response = new HttpResponseMessage { StatusCode = HttpStatusCode.ServiceUnavailable, ReasonPhrase = "XXXXXX data is currently not available XXXXXXXXX" };
response.Content = new StringContent("XXXXXX is currently not available XXXXXXXXXX");
return response;
другой сервис, вызывающий этот API, потребляет ответ и получает это WebException, что является желаемым случаем, но проблема в том, что мы теряем сообщение («данные недоступны» ") при отправке из первого сервиса, когда я попытался напечатать ответ в окне отладки, он показал следующий результат:
HttpWebResponse aresponse = request.GetResponse() as HttpWebResponse;
'HttpWebResponse aresponse = request.GetResponse() as HttpWebResponse' threw an exception of type 'System.Net.WebException'
Data: {System.Collections.ListDictionaryInternal}
HResult: -2146233079
HelpLink: null
InnerException: null
Message: "The remote server returned an error: (503) Server Unavailable."
Response: {System.Net.HttpWebResponse}
Source: "System"
StackTrace: null
Status: ProtocolError
TargetSite: null
Как показано в выходном сообщении, это не то, что я отправил с первого служба. Это сообщение по умолчанию для кода состояния HTTP 503.
Есть ли способ прочитать содержимое ответа из WebException?