Получить данные из 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();