C# · 12月 27, 2021

c# – HttpWebRequest或WebRequest – 恢复下载ASP.NET

我想知道是否有办法知道服务器是否支持恢复下载功能,如果支持,如何发送请求恢复?

我正在寻找一个解决方案,我的ASP.NET页面可以从服务器到我的下载,像今天的“rapidleech”,但我想检查我要求下载的服务器是否支持恢复功能.

解决方法 通过使用Range HTTP标头指定要下载的文件的字节范围来完成恢复文件.这可以在.NET中使用 HttpWebRequest.AddRange功能完成.

例如:

request.AddRange(1000);

将告诉服务器在文件的第1000个字节开始发送.

如果服务器支持Range头,它将发送HTTP状态为206(部分内容)而不是普通200(OK)的内容.见HTTP Spec.

要在尝试下载之前检查服务器是否支持恢复,请更改HttpWebRequest的方法“HEAD”.如果服务器支持恢复,服务器将返回206(部分内容),如果没有,则返回200(OK).