0

我正在使用InternetSetFilePointer和的组合InternetReadFile来支持可恢复下载。所以当我开始下载一个文件时,我会检查我们是否已经拥有它的一部分,并InternetSetFilePointer使用我们拥有的大小来调用,然后我开始阅读。这有效......但是,这是我的观察:

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

所以问题是:

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

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

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

4

1 回答 1

0

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

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

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

于 2013-07-25T20:30:53.147 回答