如何使用激发DownloadProgressChanged的大响应创建异步POST请求?

时间:2016-01-11 22:43:37

标签: c# download mono webclient

我使用WebClient类与只有一个端点URL的服务器进行交互,而是在JSON中接受路径作为POSTed值(并不重要)。

使用UploadStringTaskAsync,我可以异步发出此类请求并正确阅读其响应。但是,现在我面临从该服务器下载文件的必要条件。这是一个非常大的文件(高达数百兆字节),因此我的程序界面应该有一个进度指示。但是UploadStringTaskAsync不会触发DownloadProgressChanged事件,因此,我无法访问已下载的字节数。

我如何收到此文件,并能够收到进度通知?或者是否有任何其他类我可以使用它允许我做大量响应的POST请求?

1 个答案:

答案 0 :(得分:1)

首先想到的是,您将下载作为流打开,编写自己的副本循环并从那里执行进度报告。这可以保证有效。

WebClient似乎不够。 WebClient包装HttpWebRequest所以只需使用它。或者使用更现代的HttpClient。这两个保证支持获取流(实际上是流)。