2011-06-10 64 views
0

我在Java中使用“HttpURLConnection”与“Range”属性来下载文件的一个片段,我设定的范围60000-560000,我可以读500000字节的数据,这是560000-60000。但是当范围是0-60000时,我可以读取60001个字节的数据,这不等于60000-0HttpURLConnection的Java的范围

为什么?有人可以给我一些解释吗?

+1

它可能取决于服务器。不同的服务器以不同方式处理字节范围请求有些人根本不处理它们。 – ccleve 2011-06-10 02:04:01

+0

您可以从响应中获取标题,让我们知道您正在使用哪个服务器。 – whatnick 2011-06-10 02:08:29

+2

实际上,从规格的例子看,0-60000应该给你60001字节。您应该能够读取500,001字节与您的其他范围。所以你的问题实际上是倒置的。 – MJB 2011-06-10 03:35:51

回答

0

这是正确的行为。范围的界限都是包容性的。从RFC 7233

在一个字节范围规格的第一字节-POS值给出字节偏移的范围内的第一字节的 。 last-byte-pos值给出该范围中最后一个字节的 字节偏移量;也就是说,指定的位置是 是包含性的。字节偏移从零开始。

○第一500个字节(字节偏移0-499,包括端值)::字节范围说明符值的

实例

bytes=0-499 

○第二500个字节(字节偏移500-999 ,包括):

bytes=500-999