2011-09-16 24 views
12

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? 
} 

答えて

24

あなたはそれがあったことを確認するテストを実行したいと思う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

取得方法** HTTP副状態**値はありますか?たとえば、_404.13 Content Length Too Large_参照:http://www.iis.net/configreference/system.webserver/security/requestfiltering/requestlimits – Kiquenet

0

WebException(s)にはエラー番号が含まれていないため、実行できません。あなたが望む/したいことがあれば、独自のエラー番号を定義することができます。あなたはステータス、メッセージと、スタックトレースなどを取得することができます

Here's the documentationなど

0

あなたはメッセージを解析しようとすることができますが、エラー番号は常に存在ではありません。たとえば、タイムアウトが発生してもHTTPエラーコードは発生しません。

6

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