1
我使用的是最新的HttpClient(便攜式)庫,下載文件在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的唯一問題。
任何想法?
當您要求下載4096字節時,下載了多少數據?看起來你忽略了讀取的數據? –
沒有定義文件的大小,在我測試的文件中它們都大於1 MB。我編輯了樣本。 – DVD