.Net Compact Framework中的HTTP进度

时间:2009-03-03 12:16:43

标签: .net http compact-framework progress

我正在开发一个产生大量HTTP“Web服务”请求的应用程序,其中一些可能是相当大的XML文件。现在,HTTP请求是在第二个线程上发出的,因此GUI / Form没有被锁定。但它仍然无法向用户提供有关请求进度的反馈。

到目前为止,我一直在使用HTTPWebRequest类来完成这项工作,并且我的所有研究都指向它不进行ASync进度报告回调,直到它完成。

在不久的将来,这款应用必须通过3G / GPRS上传大型.jpg和.zip文件。如果没有进度条或某种类型的反馈,这将非常令人不愉快。

是否有其他(可能是第三方)框架或我可以使用的类?

请不要发布使用Desktop .Net的代码,并假设它适用于CF,谢谢。

2 个答案:

答案 0 :(得分:0)

请记住,如果使用HTTP“Transfer-Encoding:chunked”标头发送XML文件,HTTP不会告诉您文件的大小。

答案 1 :(得分:0)

您可以使用以下代码拦截来自服务器的字节流:

HttpWebResponse response = request.GetResponse();

Stream responseStream = response.GetResponseStream();

然后,您可以将响应流包装在您自己的类中,该类从HTTP流中读取并报告通过事件接收的字节数。您必须启动自己的单独线程才能运行,并且必须将流的内容显式写入文件。 (我没有在CF中尝试过这个,但这些方法记录为适用于CF.)