我想知道是否有辦法知道服務器是否支持恢復下載功能,如果支持,我該如何發送恢復請求?HttpWebRequest或WebRequest - 簡歷下載ASP.NET
我一直在尋找一個解決方案,我的ASP.NET頁面可以從服務器做一個下載到礦井,像「rapidleech」今天沒有,但我想,以檢查是否在那裏我請求服務器下載支持恢復功能。
我想知道是否有辦法知道服務器是否支持恢復下載功能,如果支持,我該如何發送恢復請求?HttpWebRequest或WebRequest - 簡歷下載ASP.NET
我一直在尋找一個解決方案,我的ASP.NET頁面可以從服務器做一個下載到礦井,像「rapidleech」今天沒有,但我想,以檢查是否在那裏我請求服務器下載支持恢復功能。
恢復文件是通過使用Range
HTTP標頭指定要下載的文件的字節範圍完成的。這可以在.NET中使用HttpWebRequest.AddRange
函數完成。
例如:
request.AddRange(1000);
將告訴服務器開始在文件的第1000個字節的發送。
如果服務器支持Range標頭,它將發送HTTP狀態爲206(部分內容)而不是普通的200(OK)的內容。請參閱HTTP Spec。
要在嘗試下載前檢查服務器是否支持恢復,請更改HttpWebRequest
的Method
「HEAD」。如果支持恢復,服務器將返回206(部分內容),如果不支持則返回200(OK)。
的範圍具體要求的更多信息時,如果服務器犯規詢問服務,將它發送一個正常的200? – Cleiton 2009-08-26 17:35:13
是的。根據HTTP規範,如果服務器不支持範圍,服務器將發送包含所有內容的標準200。 您還可以檢查在初始下載的「Accept-Ranges」標題中指定的服務器嘗試查看它是否支持發送範圍(應該是「bytes」或「none」)。此標頭不是必需的,所以如果沒有「Accept-Ranges」標頭,它可以接受範圍。 – 2009-08-26 17:54:00
@亞當,非常感謝! – Cleiton 2009-08-26 18:00:34