C# Windows运行时中的长HTTP GET请求

C# Windows运行时中的长HTTP GET请求,c#,http,get,windows-runtime,C#,Http,Get,Windows Runtime,我有Windows Phone 8.1的以下代码。它是作为通用应用程序编译和运行的 using (var client = new HttpClient()) { var stream = await client.GetStreamAsync(myphoneChannelUrl); //var stream = await client.GetStreamAsync("http://ya.ru");

我有Windows Phone 8.1的以下代码。它是作为通用应用程序编译和运行的

        using (var client = new HttpClient())
        {
            var stream = await client.GetStreamAsync(myphoneChannelUrl);
            //var stream = await client.GetStreamAsync("http://ya.ru");

            // Place 1
            stream.ReadByte();
            // Place 2
        }
我想使用一个很长的“GET”请求来组织我的应用程序的通知通道。 服务器向我发送一个字符串“START”。在Wireshark中,我看到服务器立即响应。10秒后,它向我发送字符串“NEXT”

问题是,不知何故,从流中读取一个字节只需10秒。实际上,只有在收到“下一步”后,我才能立即阅读“开始”和“下一步”

之后,当我看到有一些数据来自服务器时,流的下一次读取将永远阻塞

如果我在像google.com这样的普通页面上使用“GET”,它会向我发送数据并关闭连接,我会立即得到响应


UPD:请注意,服务器以分块传输编码发送数据。我认为服务器没有问题,因为所有其他客户端(尤其是.NET 4.0)都可以很好地使用此流。

您是否使用
ReadAsInputStream
DataReader
?如果是,您如何调用这些方法。如果您注意到一种模式,为什么不在两个TCP包中发送第一条“hello”消息呢?我在这里输入了最简单的代码,但它不起作用。如果你能建议工作的解决方案,这将是很好的,但我尝试了很长一段时间不同的变种。最后,我使用plainstreamsocket解决了这个问题。现在我可以自己控制超时、取消、读取e.t.c.的数据量。