2011-06-10 69 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