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 に答える