C # HttpWebResponse проблема кометы - PullRequest
       9

C # HttpWebResponse проблема кометы

6 голосов
/ 18 сентября 2010

Мне интересно, как бы я прочитал постоянное соединение с HttpWebRequest и HttpWebResponse.Кажется, проблема в том, что функция GetResponseStream () ожидает закрытия соединения с сервером, прежде чем вернуться.

Есть ли альтернативный простой способ прочитать кометное соединение?Пример, который не работает.

// get the response stream
        Stream resStream = response.GetResponseStream();

        string tempString = null;
        int count = 0;

        do
        {
            // fill our buffer
            count = resStream.Read(buf, 0, buf.Length);

            // as long as we read something we want to print it
            if (count != 0)
            {
                tempString = Encoding.ASCII.GetString(buf, 0, count);
                Debug.Write(tempString);
            }
        }
        while (true); // any more data to read?

1 Ответ

8 голосов
/ 18 сентября 2010

Нет особых оснований для использования HttpWebRequest , если вместо этого вы можете использовать WebClient .Взгляните на метод WebClient.OpenRead .Я успешно использую его для чтения из бесконечного HTTP-ответа:непрерывный поток данных, но для задержки ответа, пока не произойдет какое-либо событие, в этом случае ответ отправляется и соединение закрывается.Поэтому то, что вы видите, может быть просто кометой, работающей так, как задумано.

...