2012-04-21 2 views
2

В методе AddHange HttpWebRequest мы можем указать диапазон байтов для загрузки. Я хочу знать, как указать диапазон от определенного смещения до конца файла.HttpWebRequest AddRange Method Query

Подобно этому, если мы не знаем длину файла, мы можем определить, как это в строке заголовка запроса

«Диапазон: байт = 0 -» Это означает, начиная с первого байта Шифрование до конца файла.

Но используя метод AddRange, как указать это с одним значением смещения в EOF ??

Я знаю, что могу получить длину содержимого и указать, как это, AddRange (0, ContentLength). Но я спрашиваю, есть ли способ получить содержимое до EOF с определенного значения «смещения».

ответ

1

используется положительное значение для метода AddRange получить байты от смещения до конца объекта;

request.AddRange(10) 

Сообщает серверу возвращать все байты, кроме первого 10.

Вы можете использовать отрицательное значение, которое является конечной точкой;

request.AddRange(-10) 

Сообщает серверу, чтобы вернуть байты 0 до 10.

+0

спасибо большое, я думаю, что нужно использовать 1-ый ... –

0

Согласно specification for ranges,

Если значение последнего байта-полюсная отсутствует, или если значение больше или равно к текущей длине тела объекта, последний байт- pos - , принятый за единицу, меньшую, чем текущая длина объекта - тело в байтах.

Иными словами, ваш Range: bytes = 0 - должен работать. Фактически, HttpWebRequest имеет способ, AddRange(Int32), который делает именно то, о чем вы просите.

+0

большое спасибо за разъяснения .. –

1

Вам просто нужно вызвать метод AddRange с начальным значением иной затем 0.

Что-то вроде этого:

myHttpWebRequest.AddRange(50,ContentLength); 
Смежные вопросы