ASP.NET Get Web Response, когда HTTP-статус НЕ 200 OK

Мне нужно прочитать ответ HTTP GET в ситуациях, когда код состояния ответа не 200 OK. Иногда это 401, другие 403, однако будет содержание ответа. Если я пытаюсь использовать классы HttpWebResponse и HttpWebRequest, он выдает исключение, если статус ответа не 200 OK. Любые предложения?

Ответы

Ответ 1

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());
    }
}