我正在尝试使用C#4.0中的WebRequest类下载一个页面。由于某种原因,此页面正确地返回了所有内容,但返回了HTTP500内部错误代码。
Request.EndGetResponse(ar);当页面返回HTTP500或404时,此方法抛出WebException。我怎么能忽略它呢?我知道它返回500,但我仍然希望读取页面/响应的内容。
发布于 2010-10-07 22:22:46
您可以使用try / catch块来捕获异常,并通过查看WebExeption类公开的响应对象,在出现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;
}
}发布于 2010-10-07 21:55:55
try {
resp = rs.Request.EndGetResponse(ar);
}
catch (WebException ex)
{
resp = ex.Response as HttpWebResponse;
}发布于 2010-10-07 21:54:56
使用try / catch块允许您的程序即使抛出异常也能继续运行:
try
{
Request.EndGetResponse(ar);
}
catch (WebException wex)
{
// Handle your exception here (or don't, to effectively "ignore" it)
}
// Program will continue to executehttps://stackoverflow.com/questions/3882323
复制相似问题