c#-4.0 - C#HttpWebRequest忽略HTTP 500错误

标签 c#-4.0 httpwebrequest

我正在尝试使用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/

相关文章:

c# - 通过 C# 模拟请求时出现错误 Forbidden 403

c# - HttpWebRequest 分块/异步 POST

asp.net - 如何从正在使用的REST API(ServiceStack)中获取URI

c# - 表单的C#形式在单独的线程上

asp.net-mvc - 如何在 Entity Framework 代码优先中以编程方式更新数据库?

c# - 任何文化中没有小数点、点或逗号的十进制字符串

c# - 如何将 HttpRequest 复制到另一个 Web 服务?

c# - 如何将参数添加到 WebRequest 中?

silverlight - 如何在Silverlight WebClient中设置超时?

javascript - 发送电子邮件而不等待操作完成执行