Получить данные из HttpWebResponse - C#

Узнай цену своей работы

Формулировка задачи:

Возник такой вопрос. Делается

HttpWebRequest

к сайту методом POST. Создаю

HttpWebResponse

от моего запроса. Затем создаю поток, в котором по идее должно быть HTML-содержимое веб-страницы.
      HttpWebResponse res = (HttpWebResponse)req.GetResponse();
      StreamReader sr = new StreamReader(res.GetResponseStream());
 
      textBoxReq2.Text += sr.ReadToEnd();
 
      sr.Close();
      res.Close();
Вот это вот мне возвращается в ТекстБоксе:
У моего ответа (res) свойтсво

ContentLength

=

7410

, т.е. там довольно много всего, но отображается две закорючки. В расширении для браузера HttpFox нормально показываются HTML-теги возвращённой странциы. Как можно всё-таки добраться до содержимого?
так и не могу решить проблему.

Решение задачи: «Получить данные из HttpWebResponse»

textual
Листинг программы
      HttpWebResponse res = (HttpWebResponse)req.GetResponse();//Переменная req - это мой Http-запрос (HttpWebRequest).
      gz = new GZipStream(res.GetResponseStream(), CompressionMode.Decompress, true);//Создаём специальный поток для распаковки или упаковки данных. В нашем случае - CompressionMode.Decompress, т.е. для распаковки.
 
      Byte[] b = new byte[100];//Буфер для чтения.
      int i = -2;//Инициализируем любым отрицательным значением, что бы было НЕ 0 и НЕ размер буфера.
      do
      {
        i = gz.Read(b, 0, b.Length);
        textBoxReq2.Text += Encoding.UTF8.GetString(b);//Тут надо знать кодировку, в которой представлены раскодированные данные. У меня была utf-8.
      } while (i != 0);//gz.Read возвращает число прочитанных байтов, а если чтение закончено - возвращает 0. Вот и читаем в цикле, пока не будет нолик.
 
      gz.Close();
      res.Close();

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.125 из 5
Похожие ответы