Прогресс загрузки с помощью HttpClient в Blazor Wasm - PullRequest
0 голосов
/ 25 сентября 2019

Я пытаюсь получить прогресс загрузки файла в приложении веб-сборки Blazor.

var handler = new ProgressMessageHandler();
handler.InnerHandler = new WebAssemblyHttpMessageHandler();
handler.HttpSendProgress += (object sender, HttpProgressEventArgs e) =>
{
    Console.WriteLine("bytes transfered= " + e.BytesTransferred.ToString());
    Console.WriteLine("total bytes= " + e.TotalBytes.ToString());
    Console.WriteLine("progress percentage= " + e.ProgressPercentage.ToString());
};

var http = new HttpClient(handler);
http.BaseAddress = new Uri(NavigationManager.BaseUri);
await http.PostJsonAsync("api/...", attachedFile);

Console.WriteLine("Done");

Я получил следующий код, но при загрузке файла я получаю одно событие, мгновенно сообщающее 100% завершения, даже если почтовый запрос длится несколько секунд.

WASM: bytes transfered= 277983
blazor.webassembly.js:1 WASM: total bytes= 277983
blazor.webassembly.js:1 WASM: progress percentage= 100

Есть несколько вопросов о SO, связанных с процессом загрузки, но я хочу использовать Http.ProgressMessageHandler, если это возможно

...