C# HttpWebResponse返回404错误

C# HttpWebResponse返回404错误,c#,http-status-code-404,httpwebresponse,C#,Http Status Code 404,Httpwebresponse,如何让Httpwebresponse忽略404错误并继续?这比在输入中查找异常更容易,因为发生这种情况时非常罕见。如果查看抛出的WebException的属性,您将看到该属性。这就是您想要的吗?我假设您的代码中有一行代码,如: try { HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("http://mysite.com"); HttpWebResponse respo

如何让Httpwebresponse忽略404错误并继续?这比在输入中查找异常更容易,因为发生这种情况时非常罕见。

如果查看抛出的WebException的属性,您将看到该属性。这就是您想要的吗?

我假设您的代码中有一行代码,如:

    try
    {
        HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("http://mysite.com");
        HttpWebResponse response = (HttpWebResponse)request.GetResponse();          
    }
    catch(WebException ex)
    {
        HttpWebResponse webResponse = (HttpWebResponse)ex.Response;          
        if (webResponse.StatusCode == HttpStatusCode.NotFound)
        {
            //Handle 404 Error...
        }
    }
HttpWebResponse response = request.GetResponse() as HttpWebResponse;
只需将其替换为以下内容:

HttpWebResponse response;

try
{
    response = request.GetResponse() as HttpWebResponse;
}
catch (WebException ex)
{
    response = ex.Response as HttpWebResponse;
}

我想把404文档当作普通文档来阅读,因为我正在解析它,它不会通过正则表达式…是的,这个就可以了。执行此代码块后,
response
将是来自返回的任何内容的响应流,无论HTTP状态代码是什么。请记住,
HttpWebResponse
IDisposable
的,需要使用
block将其包装在
中,否则您将达到并发http请求限制。不用调用response.Close()就足够了吗?Adam,这解决了我的问题,但为什么它能工作呢?如果找不到,如何在异常详细信息中找到它?众所周知的微软秘密?我本想把404文档当作普通文档来阅读,因为我正在解析它,它不会通过正则表达式。。。