我想知道如何确定服务器是否支持断点续传功能,并且如果支持,如何发送请求以恢复下载进程?
我正在寻找一种解决方案,让我的ASP.NET页面从服务器向我的电脑下载文件,就像“rapidleech”所做的那样,但我想确认我请求下载的服务器是否支持断点续传功能。
我想知道如何确定服务器是否支持断点续传功能,并且如果支持,如何发送请求以恢复下载进程?
我正在寻找一种解决方案,让我的ASP.NET页面从服务器向我的电脑下载文件,就像“rapidleech”所做的那样,但我想确认我请求下载的服务器是否支持断点续传功能。
通过使用 Range
HTTP 头指定要下载的文件的字节范围即可恢复文件的下载。在 .NET 中,可以使用 HttpWebRequest.AddRange
函数实现此操作。
例如:
request.AddRange(1000);
将告知服务器从文件的第1000个字节开始发送。
如果服务器支持Range头,则会使用HTTP状态206(部分内容)而不是正常的200(OK)发送内容。请参见HTTP规范。
在尝试下载之前检查服务器是否支持恢复,请更改 HttpWebRequest
的 Method
为“HEAD”。如果服务器支持恢复,则会返回206(部分内容),如果不支持,则返回200(OK)。