如何在Qt中快速下载大文件

时间:2012-04-18 09:48:54

标签: qt

如何在Qt中并行地以块的形式下载大文件。这样可以减少文件下载时间。

1 个答案:

答案 0 :(得分:13)

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

  1. 使用HEAD请求获取文件大小(Content-Length)并检查服务器是否支持范围请求(Accept-Ranges
  2. 关于GET请求的
  3. Enable pipelining
  4. 根据内容的大小设置Range标题
  5. 通过设置HttpPipeliningAllowedAttribute属性

    为您的请求启用HTTP流水线操作
    QNetworkRequest req(url);
    req.setAttribute(QNetworkRequest::HttpPipeliningAllowedAttribute, true);
    

    设置范围标题:

    req.setRawHeader("Range", "bytes=0-499");