欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C#判断WEB服务器是否支持断点续传

程序员文章站 2022-06-10 20:34:13
...

C#判断WEB服务器是否支持断点续传


c#程序代码

//1.发出请求
string url = "http://www.mzwu.com/test.apk";
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
request.AddRange(0, 1);
request.Timeout = 10000; //防止不支持时等太久
HttpWebResponse response;
try
{
    response = (HttpWebResponse)request.GetResponse();
}
catch (WebException ex)
{
    response = (HttpWebResponse)ex.Response;
}
//2.根据HTTP状态码判断是否支持断点续传
Console.WriteLine(response!=null && response.StatusCode == HttpStatusCode.PartialContent ? "YES" : "NO");


转自:http://www.mzwu.com/article.asp?id=3687


附linux下测试资源是否支持断点续传:

通常情况下,Web服务器(如Apache)会默认开启对断点续传的支持。因此,如果直接通过Web服务器来提供文件的下载,可以不必做特别的配置,即可享受到断点续传的好处。断点续传是在发起HTTP请求的时候加入RANGE头来告诉服务器客户端已经下载了多少字节。等所有这些请求都返回之后,再把得到的内容一块一块的拼接起来得到完整的资源。

你可以通过以下的命令来测试一下。

Linux 测试服务器是否支持断点续传

localhost [~]# wget -S http://httpd.apache.org/images/httpd_logo_wide_new.png 2>&1 | grep ‘Accept-Ranges’ 
  Accept-Ranges: bytes

输出结果 Accept-Ranges: bytes ,说明服务器支持按字节下载.

curl 命令发送字节范围下载

curl –range 0-99 http://images.apple.com/home/images/billboard_iphone_hero.jpg

这样可以到最开始99字节,结果如下图:


说明从服务器端按字节范围下载是完全没有问题的。

--- end ---