Http прервана / загрузка файла - HTTP заголовок «Range» на Android / iPhone - PullRequest
1 голос
/ 29 марта 2012

Когда мы загружаем файл с веб-сервера, он сначала сохраняется в памяти телефона, и в определенные моменты данные сбрасываются на SD-карту, чтобы не заполнить оперативную память.

Но когда происходит сбой соединения, пользователи переключают телефон в режим полета, покидают зону покрытия WLAN и т. Д. Обычно загрузка файла должна начинаться с самого начала.

Это и трата времени и денег для пользователя, и трата сетевых ресурсов и аккумулятора телефона.

Чтобы продолжить прерванную загрузку, мы планируем использовать HTTP-заголовки Range.Каково правильное использование для этого?

Нужно ли нам вспоминать исходную длину файла из заголовка Content-Length или мы должны вместо этого отправить HEAD (что должно дать нам фактический размер файла ...) или нет необходимостисохранить исходный размер и отправить в следующем HTTP-запросе GET следующие заголовки и пропустить окончательный размер файла (ниже я предполагаю, что 555 байт уже было загружено):

Accept-Ranges:bytes
Range: 555-

Спасибо и привет,

Sten

1 Ответ

1 голос
/ 29 марта 2012

Вам не нужен полный размер файла, но вы должны использовать

Range: bytes=555-
Заголовок

, и вы также должны убедиться, что сервер может обработать ваш запрос и что он отвечает с

HTTP 206 Partial Content
...