none
C#, WebClient. Как при приходящей ошибке прочитать информацию ответа? RRS feed

  • Вопрос

  • Здравствуйте.
    Столкнулся с проблемой.
    Читаю некую страницу, которая возвращает "500 внутренняя ошибка сервера" и чего-то там в хтмл содержимом.
    Вебклиент что-то не хочет мне выдавать содержимое этохтмлное,
    ошибка и всё тут.
    А браузер нормально отображает всё чего пришло.
    И я хочу так получать не смотря на ошибку.
    Конечно, знать что она в ответ пришла тоже хочется.

    Может не вебклиент надо?
    22 октября 2012 г. 7:33

Ответы

  • Нашёл, оказывается в экцептион приходит ответ, который можно читать.
    try
    {
        var html = wc.DownloadString("ссылка на страницу с ошибкой");
    }
    catch (WebException ex)
    {
        var HtmlDoc2 = new System.IO.StreamReader(ex.Response.GetResponseStream(), this.HttpEncoding).ReadToEnd();
    }

    • Помечено в качестве ответа Abolmasov Dmitry 22 октября 2012 г. 15:24
    22 октября 2012 г. 8:50

Все ответы

  • Нашёл, оказывается в экцептион приходит ответ, который можно читать.
    try
    {
        var html = wc.DownloadString("ссылка на страницу с ошибкой");
    }
    catch (WebException ex)
    {
        var HtmlDoc2 = new System.IO.StreamReader(ex.Response.GetResponseStream(), this.HttpEncoding).ReadToEnd();
    }

    • Помечено в качестве ответа Abolmasov Dmitry 22 октября 2012 г. 15:24
    22 октября 2012 г. 8:50
  • Да, все так и есть, спасибо что выложили решение проблемы. Только добавьте проверку Response на null и также сам Response можно привести к HttpWebResponse, у которого есть свойства для более удобной обработки ошибки.

    Для связи [mail]

    22 октября 2012 г. 15:23
  • хорошо, спасибо за совет.
    а про проверку на null я как-то забыл.
    наверное пока сервер на самом деле доступен и не заметил бы
    22 октября 2012 г. 16:27