4

如何在 Qt 中并行下载大文件。从而减少文件下载时间。

4

1 回答 1

13

假设您使用的是 QNetwork 并且下载是 HTTP GET,您将需要执行以下操作:

  1. 使用 HEAD 请求获取文件大小 ( Content-Length) 并检查服务器是否支持 Range 请求 ( Accept-Ranges)
  2. 在 GET 请求上启用流水线
  3. Range根据内容的大小设置标题

通过设置HttpPipeliningAllowedAttribute属性对您的请求启用 HTTP 管道:

QNetworkRequest req(url);
req.setAttribute(QNetworkRequest::HttpPipeliningAllowedAttribute, true);

设置范围标题:

req.setRawHeader("Range", "bytes=0-499");
于 2012-04-18T11:36:20.953 回答