Есть приложение на C#, в нём используется загрузка файлов на сервер. Проблема в том, что используемый мной httpclient не хочет адекватно отображать процесс загрузки.
Цепляю обработчик так:
handler = new HttpClientHandler();
...
progressHandler = new ProgressMessageHandler();
progressHandler.HttpSendProgress += sendProgress;
progressHandler.HttpReceiveProgress += recvProgress;
...
client = HttpClientFactory.Create(handler, progressHandler);
Сами обработчики состоят из одной строки вывода в консоль. Когда пытаюсь вызвать PostAsync с загрузкой файла, то лог выглядит так:
Net.Send: 40 / total: 5946593
Net.Send: 125 / total: 5946593
Net.Send: 1089 / total: 5946593
Net.Send: 5946549 / total: 5946593
Net.Send: 5946593 / total: 5946593
То есть сам прогрессбар пролетает за секунду, хотя физически файл ещё пару минут заливается. Сам код работает корректно, то есть ничего нигде не сыпется и файл заливается без ошибок. Уже пару дней ищу ответ, пробую различные решения, но пока что безрезультатно. С загрузкой файла на компьютер (download) всё нормально, видно как идёт загрузка по 4-5кб. С upload такого, увы, нет.
(предложения использовать другие компоненты не принимаются, интересно уже разобраться в проблеме)