Получить данные из HttpWebResponse - C#
Формулировка задачи:
Возник такой вопрос. Делается Вот это вот мне возвращается в ТекстБоксе:
У моего ответа (res) свойтсво
HttpWebRequest
к сайту методом POST. СоздаюHttpWebResponse
от моего запроса. Затем создаю поток, в котором по идее должно быть HTML-содержимое веб-страницы.HttpWebResponse res = (HttpWebResponse)req.GetResponse(); StreamReader sr = new StreamReader(res.GetResponseStream()); textBoxReq2.Text += sr.ReadToEnd(); sr.Close(); res.Close();
�
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();
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д