HttpWebResponseリモートサーバはエラーを返します:(500)内部サーバエラー.
1440 ワード
げんしょう
実装実装要求のページを符号化する場合、要求されたコードは次のコードに似ています.
しかし、私たちが要求したこのページがちょうど異常が発生したページであるか、存在しないページである場合.上のコードは
ここで例外を放出:リモート・サーバがエラーを返します:(500)内部サーバエラー.
上記のコードでは,エラー発生時のページソースコードは得られない.
原因を分析する
(HttpWebResponse)req.GetResponse(); この行のコードでは、次のことが行われています.
サーバセグメントASP.NetプログラムにExceptionが発生した場合、クライアントアプリケーションがHTTPプロトコルエラーを受け入れた後.このHTTPプロトコルエラーをStatusに変換してWebExceptionStatusに設定する.ProtocolErrorのWebException、そしてこの異常throwを出します.
問題を解決する
エラーが発生したときのサーバセグメントエラーページのソースコードを取得するにはどうすればいいですか?
実は非常に簡単な方法で、エラーが発生するかどうかにかかわらず、次のコードでサーバセグメントページのソースコードを得ることができます.
実装実装要求のページを符号化する場合、要求されたコードは次のコードに似ています.
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(strUrl);
req.UserAgent = "MSIE6.0";
req.Method = "GET";
HttpWebResponse res = (HttpWebResponse)req.GetResponse();
StreamReader sr = new StreamReader(res.GetResponseStream(), strEncode);
strHtml = sr.ReadToEnd();
sr.Close();
res.Close();
しかし、私たちが要求したこのページがちょうど異常が発生したページであるか、存在しないページである場合.上のコードは
req.GetResponse();
ここで例外を放出:リモート・サーバがエラーを返します:(500)内部サーバエラー.
上記のコードでは,エラー発生時のページソースコードは得られない.
原因を分析する
(HttpWebResponse)req.GetResponse(); この行のコードでは、次のことが行われています.
サーバセグメントASP.NetプログラムにExceptionが発生した場合、クライアントアプリケーションがHTTPプロトコルエラーを受け入れた後.このHTTPプロトコルエラーをStatusに変換してWebExceptionStatusに設定する.ProtocolErrorのWebException、そしてこの異常throwを出します.
問題を解決する
エラーが発生したときのサーバセグメントエラーページのソースコードを取得するにはどうすればいいですか?
実は非常に簡単な方法で、エラーが発生するかどうかにかかわらず、次のコードでサーバセグメントページのソースコードを得ることができます.
HttpWebResponse res;
try
{
res = (HttpWebResponse)req.GetResponse();
}
catch (WebException ex)
{
res = (HttpWebResponse)ex.Response;
}
StreamReader sr = new StreamReader(res.GetResponseStream(), strEncode);
strHtml = sr.ReadToEnd();
,WebException StatusCode HTTP , Response WebResponse,
HTTP 。