如何检测服务器允许多部分下载QT

时间:2015-03-31 03:13:31

标签: c++ qt

我在编写下载管理器时遇到问题。

如果服务器允许多部件下载,当我向服务器发送请求时,如何检测?

如何告诉服务器,允许一个客户端一次拥有多个连接并从头服务器返回信息?

1 个答案:

答案 0 :(得分:0)

当您向服务器发出请求时,服务器响应可能包含" Accept-Ranges"头。这表明服务器支持多部分下载。更多信息here.

您也可以在不检查此标头的情况下发送请求。如果你想下载某个特定的部分你需要设置" Range"头。但是服务器不支持它,下载可能从头开始。更多信息here

您的Qt代码可能如下所示。

    mCurrentRequest = QNetworkRequest(url);
    QByteArray rangeHeaderValue = "bytes=" + QByteArray::number(mDownloadSizeAtPause) + "-";
    mCurrentRequest.setRawHeader("Range",rangeHeaderValue);

    download(mCurrentRequest);

可以找到完整的工作代码here