如何在 Delphi 中只下载大文件的一小部分?(如下载管理器)
例如,假设我想通过 HTTP 获取 100MB 文本文件的前 300 个字节。
获取 100MB 文件的前 300 个字节。
使用 WinInet 库,您可以在参数中指定您实际需要的文件开头的字节数。
http://msdn.microsoft.com/en-us/library/windows/desktop/aa385103.aspx
如果您以后想要中间的一些块,您可以调查 3rd-party 库。使用这些库,您需要设置 HTTP 请求Range
标头 - https://en.wikipedia.org/wiki/List_of_HTTP_header_fields
http://www.overbyte.be/eng/products/ics.html没有在线帮助,但也许在资源中您会找到对它的支持。
http://synapse.ararat.cz/doc/help/httpsend.THTTPSend.html#RangeStart中有数字属性
http://www.indyproject.org/docsite/html/TIdRequestHeaderInfo_Range.html中有对象的字符串属性TIdHTTP.Request
。
但是,服务器可能会忽略此标头。您选择的库应检查服务器是否Content-Range
在 HTTP 响应中退休,如果没有,则执行某些操作。也许从非常文件开始下载或者可能抛出异常。您应该测试这些库并了解它们在这种情况下的行为。