我有以下Windows Phone 8.1代码。它已编译并作为Universal应用程序运行。
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秒钟。实际上只有在收到" NEXT"我可以阅读" START"和" NEXT"立即
之后,当我看到来自服务器的一些数据时,下一次从流中读取将永久阻止。
如果我使用" GET"在像google.com这样的普通页面上,它会向我发送数据并关闭连接,我会立即得到响应。
UPD:请注意,服务器以分块传输编码方式发送数据。我想服务器没有问题,因为所有其他客户端(例如.NET 4.0)都可以正常使用这个流。