WinInet可以恢复文件下载而无需重新开始吗?

时间:2013-07-25 04:40:09

标签: download wininet resume-download

我正在使用InternetSetFilePointerInternetReadFile的组合来支持可恢复的下载。因此,当我开始下载文件时,我会查看是否已经有部分内容,并使用我们拥有的内容调用InternetSetFilePointer,然后我开始阅读。这有效...但是,这是我的观察:

如果我已经下载了90%的文件,并且花了2分钟时间,那么当我恢复时,第一次拨打InternetReadFile大约需要2分钟!我只能在幕后得出结论,它只是从头开始下载文件,将所有内容丢弃到我给InternetSetFilePointer的点,然后返回“下一个”数据。

所以问题是:

1)WinInet“模拟”InternetSetFilePointer,还是真的将该信息提供给服务器?

2)假设HTTP服务器支持这样做,有没有办法让WinInet真正跳到所需的搜索点?

我正在下载的服务器是Amazon S3服务器,我99.9%肯定支持简历。

1 个答案:

答案 0 :(得分:0)

这样做的正确方法最终出现在一些扩展搜索中,这里有一篇关于它的好文章的链接:

http://www.clevercomponents.com/articles/article015/resuming.asp

基本上,要正确执行HTTP恢复,您需要使用“Range”HTTP标头,以便服务器可以正确地为您的请求分配资源。