Resuming files is done by specifying the byte range of the file you would like to download using the Range
HTTP header. This can be done in .NET with the HttpWebRequest.AddRange
function.
For example:
request.AddRange(1000);
Will tell the server to begin sending at the 1000th byte of the file.
If the server supports the Range header, it will send the content with an HTTP status of 206 (Partial Content) instead of the normal 200 (OK). See the HTTP Spec.
To check if the server supports resuming before attempting the download, change the HttpWebRequest
's Method
"HEAD". The server will return 206 (Partial Content) if it supports resuming, and 200 (OK) if it does not.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…