我正在使用InternetSetFilePointer
和InternetReadFile
的组合来支持可恢复的下载。因此,当我开始下载文件时,我会查看是否已经有部分内容,并使用我们拥有的内容调用InternetSetFilePointer
,然后我开始阅读。这有效...但是,这是我的观察:
如果我已经下载了90%的文件,并且花了2分钟时间,那么当我恢复时,第一次拨打InternetReadFile
大约需要2分钟!我只能在幕后得出结论,它只是从头开始下载文件,将所有内容丢弃到我给InternetSetFilePointer
的点,然后返回“下一个”数据。
所以问题是:
1)WinInet“模拟”InternetSetFilePointer
,还是真的将该信息提供给服务器?
2)假设HTTP服务器支持这样做,有没有办法让WinInet真正跳到所需的搜索点?
我正在下载的服务器是Amazon S3服务器,我99.9%肯定支持简历。
答案 0 :(得分:0)
这样做的正确方法最终出现在一些扩展搜索中,这里有一篇关于它的好文章的链接:
http://www.clevercomponents.com/articles/article015/resuming.asp
基本上,要正确执行HTTP恢复,您需要使用“Range”HTTP标头,以便服务器可以正确地为您的请求分配资源。