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

use*_*111 4 qt

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

Sil*_*ker 13

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

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

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

QNetworkRequest req(url);
req.setAttribute(QNetworkRequest::HttpPipeliningAllowedAttribute, true);
Run Code Online (Sandbox Code Playgroud)

设置范围标题:

req.setRawHeader("Range", "bytes=0-499");
Run Code Online (Sandbox Code Playgroud)