17

How To Get Error number in 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?
}
Amar Palsapure
  • 9,590
  • 1
  • 27
  • 46
Ali Yousefi
  • 2,355
  • 2
  • 32
  • 47

3 Answers3

30

You'll want to run a test to make sure that it was a ProtocolError:

if (e.Status == WebExceptionStatus.ProtocolError) 
{
    Console.WriteLine("Status Code : {0}", ((HttpWebResponse)e.Response).StatusCode);
    Console.WriteLine("Status Description : {0}", ((HttpWebResponse)e.Response).StatusDescription);
}
Neil Knight
  • 47,437
  • 25
  • 129
  • 188
  • How get **HTTP Substatus** value ? For example, _404.13 Content Length Too Large_ Reference: http://www.iis.net/configreference/system.webserver/security/requestfiltering/requestlimits – Kiquenet Apr 14 '15 at 08:57
7

For Get Error Number:

catch(System.Net.WebException e)
{
    int errorNumber = (int)e.Status;
}
Amar Palsapure
  • 9,590
  • 1
  • 27
  • 46
Ali Yousefi
  • 2,355
  • 2
  • 32
  • 47
0

You could try to parse the message, but there isn't always an error number. A timeout for example doesn't result in an HTTP error code.

Guffa
  • 687,336
  • 108
  • 737
  • 1,005