在WebException错误中获取错误号

如何在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? } 

您将要运行测试以确保它是ProtocolError

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

获取错误号:

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

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

您不能这样做,因为WebException(s)没有错误号。 您可以定义自己的错误编号,如果这是您想要/需要做的。

这是文档,你可以获得Status,Message,StackTrace等等。