我正在尝试使用C#4.0中的WebRequest类下载页面。由于某种原因,此页面可以正确返回所有内容,但带有HTTP 500内部错误代码。
Request.EndGetResponse(ar);
当页面返回HTTP 500或404时,此方法将引发WebException。我该如何忽略呢?我知道它返回500,但我仍然想阅读页面/响应的内容。
最佳答案
您可以通过查看WebExeption类公开的响应对象,使用try/catch块来捕获异常并在出现HTTP 404或500错误的情况下进行其他处理。
try
{
response = (HttpWebResponse)Request.EndGetResponse(ar);
}
catch (System.Net.WebException ex)
{
response = (HttpWebResponse)ex.Response;
switch (response.StatusCode)
{
case HttpStatusCode.NotFound: // 404
break;
case HttpStatusCode.InternalServerError: // 500
break;
default:
throw;
}
}
关于c#-4.0 - C#HttpWebRequest忽略HTTP 500错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3882323/