首页 文章

当HTTP状态不是200时,ASP.NET获取Web响应

提问于
浏览
15

我需要在响应状态代码不是200 OK的情况下从HTTP GET读取响应 . 有时它是401,其他403,但是会有响应内容 . 如果我尝试使用HttpWebResponse和HttpWebRequest类,它会在响应状态不是200 OK时抛出异常 . 有什么建议?

1 回答

  • 36
    var request = (HttpWebRequest)WebRequest.Create("http://stackoverflow.com/1");
    try
    {
        using (WebResponse response = request.GetResponse())
        {
            // Success
        }
    }
    catch (WebException e)
    {
        using (WebResponse response = e.Response)
        {
            HttpWebResponse httpResponse = (HttpWebResponse)response;
            Console.WriteLine("Error code: {0}", httpResponse.StatusCode);
            using (var streamReader = new StreamReader(response.GetResponseStream()))
                Console.WriteLine(streamReader.ReadToEnd());
        }
    }
    

相关问题