2015-03-31 73 views
0

我在編寫我的下載管理器時遇到問題。如何檢測服務器允許多個部分下載QT

當我向服務器發送請求時,如何檢測服務器是否允許多部分下載?

如何告訴服務器,允許一個客戶端一次有多個連接,並從主服務器返回信息?

+0

從你的問題,你不清楚你想要做什麼。什麼協議,什麼請求,什麼服務器?您是否試圖確定Web服務器(HTTP)是否支持/發送MIME多部分下載?或者你在談論分塊傳輸? – 2015-03-31 03:57:42

回答

0

當您向服務器發送請求時,服務器響應可能包含「Accept-Ranges」標頭。這表明服務器支持多部分下載。更多信息here.

您也可以在不檢查此標頭的情況下發送請求。如果你想下載一些特定的部分,你需要設置「範圍」標題。然而,服務器不支持它,下載可能從頭開始。更多信息here

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

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

    download(mCurrentRequest); 

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

+0

非常感謝@Kunal。 – 2015-03-31 04:07:51