Получить номер ошибки в WebException Error - PullRequest
14 голосов
/ 16 сентября 2011

Как получить номер ошибки в WebException Error?

try
{
     HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("site");
     HttpWebResponse response = (HttpWebResponse)request.GetResponse();
     Stream stream = response.GetResponseStream();
     int i = stream.ReadByte();
}
catch (WebException e)
{
     //How To Get Error number in WebException Error?
}

Ответы [ 4 ]

27 голосов
/ 16 сентября 2011

Вы хотите запустить тест, чтобы убедиться, что это был ProtocolError:

if (e.Status == WebExceptionStatus.ProtocolError) 
{
    Console.WriteLine("Status Code : {0}", ((HttpWebResponse)e.Response).StatusCode);
    Console.WriteLine("Status Description : {0}", ((HttpWebResponse)e.Response).StatusDescription);
}
6 голосов
/ 21 сентября 2011

Для получения номера ошибки:

catch(System.Net.WebException e)
{
    int errorNumber = (int)e.Status;
}
0 голосов
/ 16 сентября 2011

Вы можете попытаться разобрать сообщение, но не всегда есть номер ошибки.Например, тайм-аут не приводит к коду ошибки HTTP.

0 голосов
/ 16 сентября 2011

Вы не можете сделать это, потому что WebException(s) не имеет номеров ошибок. Вы можете определить свои собственные номера ошибок, если это то, что вы хотите / должны сделать.

Вот документация Вы можете получить статус, сообщение, StackTrace и т. Д. И т. Д.

...