我在编写下载管理器时遇到问题。
如果服务器允许多部件下载,当我向服务器发送请求时,如何检测?
如何告诉服务器,允许一个客户端一次拥有多个连接并从头服务器返回信息?
答案 0 :(得分:0)
当您向服务器发出请求时,服务器响应可能包含" Accept-Ranges"头。这表明服务器支持多部分下载。更多信息here.
您也可以在不检查此标头的情况下发送请求。如果你想下载某个特定的部分你需要设置" Range"头。但是服务器不支持它,下载可能从头开始。更多信息here。
您的Qt代码可能如下所示。
mCurrentRequest = QNetworkRequest(url);
QByteArray rangeHeaderValue = "bytes=" + QByteArray::number(mDownloadSizeAtPause) + "-";
mCurrentRequest.setRawHeader("Range",rangeHeaderValue);
download(mCurrentRequest);
可以找到完整的工作代码here。