Оправляю запрос на сервер, где ошибка 500 и в браузере возвращается описание внутренней ошибки сервера
В WebException получаю Status = ConnectionClosed (Запрос был прерван: Соединение было неожиданно закрыто.)
Соответственно в WebException.Response = null
Как мне это обойти и получить ответ сервера, даже если там внутренняя ошибка?
код:
HttpWebRequest webRequest = (HttpWebRequest)HttpWebRequest.Create("http://localhost/test/request");
webRequest.Credentials = CredentialCache.DefaultCredentials;
webRequest.Method = "POST";
webRequest.ContentType = "application/x-www-form-urlencoded";
ASCIIEncoding encoding = new ASCIIEncoding();
byte[] byte1 = encoding.GetBytes("SourceId=15");
webRequest.ContentLength = byte1.Length;
using (Stream newStream = webRequest.GetRequestStream()) {
newStream.Write(byte1, 0, byte1.Length);
}
try {
HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse();
using (Stream receiveStream = webResponse.GetResponseStream()) {
Encoding encode = System.Text.Encoding.GetEncoding("windows-1251");
using (StreamReader readStream = new StreamReader(receiveStream, encode)) {
return readStream.ReadToEnd();
}
}
} catch (WebException ex) {
HttpWebResponse httpResponse = (HttpWebResponse)ex.Response;
if (ex.Response != null) {
using (Stream stream = ex.Response.GetResponseStream()) {
StreamReader reader = new StreamReader(stream, Encoding.UTF8);
return reader.ReadToEnd();
}
}
}