[英]HttpClient buffers response stream on Windows Phone
我正在使用最新的HttpClient(便携式)库下载文件,代码如下:
var httpClient = new HttpClient();
var request = new HttpRequestMessage(method, _path);
var operation = await httpClient.SendAsync(request, HttpCompletionOption.ResponseHeadersRead);
var stream = await operation.Content.ReadAsStreamAsync();
do
{
var read = await stream.ReadAsync(buffer, 0, 4096);
ReportProgress(...);
(...)
} while (...);
在Windows Phone上,ReadAsync将在返回之前下载所有内容,因此,即使我将其配置为仅读取接下来的4096字节,它也会读取所有内容,然后返回。 这里的问题是我想报告下载进度,这种行为基本上使它变得不可能,因为它仅在下载所有内容后报告任何内容。
最奇怪的是,Windows 8.1上完全相同的代码可以很好地工作,而没有任何问题,它似乎是Windows Phone的唯一问题。
有任何想法吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.