есть веб-скрипт, который отдает бесконечно данные(cgi). я пытаюсь из него читать данные но они не читаются в прямом понимании.
вот код
using (HttpWebResponse resp = (HttpWebResponse)request.GetResponse())
using (Stream sm = resp.GetResponseStream())
using (StreamReader sr = new StreamReader(sm, Encoding.Default))
{
html = sr.ReadToEnd();
CookieContainer = request.CookieContainer;
}
т.е. на строке sr.ReadToEnd() начинается бесконечное чтение и программа перестает дальше выполняться. не зависает
посоветуйте как быть, может поиграть с заголовками, только как?
нужно как то вычитывать данные по мере того как скрипт их отдает(cgi не мой)
Здравствуйте, Аноним, Вы писали:
А>есть веб-скрипт, который отдает бесконечно данные(cgi). я пытаюсь из него читать данные но они не читаются в прямом понимании.
А>вот код
А>А>using (HttpWebResponse resp = (HttpWebResponse)request.GetResponse())
А> using (Stream sm = resp.GetResponseStream())
А> using (StreamReader sr = new StreamReader(sm, Encoding.Default))
А> {
А> html = sr.ReadToEnd();
А> CookieContainer = request.CookieContainer;
А> }
А>
А>т.е. на строке sr.ReadToEnd() начинается бесконечное чтение и программа перестает дальше выполняться. не зависает
А>посоветуйте как быть, может поиграть с заголовками, только как?
А>нужно как то вычитывать данные по мере того как скрипт их отдает(cgi не мой)
используйте другие методы StreamReader, у него не только ReadToEnd есть. Но в любом случае это приведет к некоему зависанию, потому что вы не можете гарантировать наличие данные для чтения.
Здравствуйте, <Аноним>, Вы писали:
А>т.е. на строке sr.ReadToEnd() начинается бесконечное чтение и программа перестает дальше выполняться.
Всё правильно — ты же сам сказал ей "читать
до окончания потока".
Используй метод sr.Read в цикле и будет тебе щасте.
... << RSDN@Home 1.2.0 alpha rev. 677>>