在 WebException 错误中获取错误编号

17

如何在WebException错误中获取错误编号?

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?
}
3个回答

30

你需要运行一个测试来确保它是一个ProtocolError

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

如何获取HTTP子状态值?例如,404.13内容长度过大。参考:http://www.iis.net/configreference/system.webserver/security/requestfiltering/requestlimits - Kiquenet

7

获取错误编号:

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

0
您可以尝试解析该消息,但并不总是有错误编号。例如,超时并不会导致 HTTP 错误代码。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接