2011-09-16 14 views
12

¿Cómo obtener el número de error en WebException Error?Obtener el número de error en 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? 
} 

Respuesta

24

Usted querrá realizar una prueba para asegurarse de que se trataba de un ProtocolError:

if (e.Status == WebExceptionStatus.ProtocolError) 
{ 
    Console.WriteLine("Status Code : {0}", ((HttpWebResponse)e.Response).StatusCode); 
    Console.WriteLine("Status Description : {0}", ((HttpWebResponse)e.Response).StatusDescription); 
} 
+0

Cómo llegar ** ** HTTP Subestado valor? Por ejemplo, _404.13 Content Length Too Large_ Referencia: http://www.iis.net/configreference/system.webserver/security/requestfiltering/requestlimits – Kiquenet

0

No puede hacer eso porque WebException(s) no tiene números de error. Puede definir sus propios números de error si eso es lo que quiere/necesita hacer.

Here's the documentation Puede obtener el estado, Mensaje, StackTrace, etc, etc.

0

Se podría tratar de analizar el mensaje, pero no siempre hay un número de error. Un tiempo de espera, por ejemplo, no da como resultado un código de error HTTP.

6

Para obtener el número de error:

catch(System.Net.WebException e) 
{ 
    int errorNumber = (int)e.Status; 
} 
Cuestiones relacionadas