HttpWebRequest AddRange方法查询

时间:2012-04-21 13:32:02

标签: c# http

在HttpWebRequest AddRange方法中,我们可以指定要下载的字节范围。我想知道的是如何指定从某个偏移到文件末尾的范围。

如果我们不知道文件的长度,我们可以在Request Header字符串中指定这样的

“范围:字节= 0 - ”这意味着,从第一个字节开始直到文件结尾。

但是使用方法AddRange,如何用EOF的一个偏移值指定它?

我知道我可以获得内容长度并指定如下,AddRange(0,ContentLength)。但我问是否有任何方法可以从某个'偏移'值获得内容到EOF。

3 个答案:

答案 0 :(得分:1)

您只需要调用AddRange方法,其起始值不是0。

这样的事情:

myHttpWebRequest.AddRange(50,ContentLength);

答案 1 :(得分:1)

您使用AddRange方法的正值来获取从偏移到实体末尾的字节;

 request.AddRange(10)

告诉服务器返回除前10个以外的所有字节。

您可以使用负值,这是结束点;

 request.AddRange(-10)

告诉服务器返回0到10的字节。

答案 2 :(得分:0)

根据specification for ranges

  

如果不存在last-byte-pos值,或者该值大于   或者等于实体主体的当前长度,last-byte-pos是   被认为等于小于当前实体长度的一个 -   身体以字节为单位。

换句话说,你的Range: bytes = 0 -应该可行。实际上,HttpWebRequest有一个方法,AddRange(Int32),它完全符合您的要求。