Мой удаленный сервер бросает веб-исключение как плохой запрос. Но я знаю, что в ошибке больше информации, чем я. Если я посмотрю подробности из исключения, он не перечисляет фактическое содержание ответа. Я вижу только контент-тип, длину содержимого и кодировку содержимого. Если я запустил это же сообщение через другую библиотеку (например, restsharp
), я увижу подробную информацию об исключении с удаленного сервера. Как получить дополнительную информацию из ответа, поскольку я знаю, что удаленный сервер отправляет их?Получение содержимого из исключения httpwebresponse
static string getXMLString(string xmlContent, string url)
{
//string Url;
string sResult;
//Url = ConfigurationManager.AppSettings["UserURl"] + url;
var httpWebRequest = (HttpWebRequest)WebRequest.Create(url);
httpWebRequest.ContentType = "application/xml";
httpWebRequest.Method = "POST";
using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
streamWriter.Write(xmlContent);
streamWriter.Flush();
streamWriter.Close();
var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
var result = streamReader.ReadToEnd();
sResult = result;
}
}
return sResult;
}
Проблема, с которой я столкнулась, - это вызов, вызывающий ошибку в строке, где ответ определен в первую очередь, поэтому у меня нет возможности захватить поток, потому что код уже назвал его ошибкой. (В этой строке: HttpWebResponse myHttpWebResponse = (HttpWebResponse) myHttpWebRequest.GetResponse();) –
Добавлена правильная проверка ошибок, а затем это решение сработало. –
Вы точно сделали проверку ошибок? Вы добавили попытку? – informaticienzero