首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C# HttpWebRequest忽略HTTP500错误

C# HttpWebRequest忽略HTTP500错误
EN

Stack Overflow用户
提问于 2010-10-07 21:53:09
回答 4查看 19.9K关注 0票数 8

我正在尝试使用C#4.0中的WebRequest类下载一个页面。由于某种原因,此页面正确地返回了所有内容,但返回了HTTP500内部错误代码。

代码语言:javascript
复制
Request.EndGetResponse(ar);

当页面返回HTTP500或404时,此方法抛出WebException。我怎么能忽略它呢?我知道它返回500,但我仍然希望读取页面/响应的内容。

EN

回答 4

Stack Overflow用户

发布于 2010-10-07 22:22:46

您可以使用try / catch块来捕获异常,并通过查看WebExeption类公开的响应对象,在出现http 404或500错误的情况下执行额外的处理。

代码语言:javascript
复制
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;
    }
}
票数 20
EN

Stack Overflow用户

发布于 2010-10-07 21:55:55

代码语言:javascript
复制
try {
    resp = rs.Request.EndGetResponse(ar);
} 
catch (WebException ex) 
{ 
    resp = ex.Response as HttpWebResponse; 
}
票数 7
EN

Stack Overflow用户

发布于 2010-10-07 21:54:56

使用try / catch块允许您的程序即使抛出异常也能继续运行:

代码语言:javascript
复制
try
{
    Request.EndGetResponse(ar);
}
catch (WebException wex)
{
    // Handle your exception here (or don't, to effectively "ignore" it)
}

// Program will continue to execute
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3882323

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档