我需要在响应状态代码不是200 OK的情况下从HTTP GET读取响应。有时它是401,其他403,但是会有响应内容。如果我尝试使用HttpWebResponse和HttpWebRequest类,它会在响应状态不是200 OK时抛出异常。有什么建议吗?
答案 0 :(得分:37)
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());
}
}