Продолжить прерванную загрузку на iPhone - PullRequest
1 голос
/ 10 июня 2009

Я использую NSURLConnection для загрузки больших файлов из Интернета на iPhone. Я использую метод didReceiveData для добавления данных в файл в папке «Документы». Работает нормально.

Если загрузка прервана (например, из-за того, что пользователь нажал кнопку «домой»), я хотел бы продолжить загрузку при следующем запуске пользователем приложения, а не с нуля!

Кто-нибудь может мне помочь?

Ответы [ 3 ]

7 голосов
/ 11 июня 2009

ASIHTTPRequest имеет простую в использовании поддержку для возобновления загрузки:

http://allseeing -i.com / ASIHTTPRequest / Как в использовании # резюме

В качестве альтернативы узнайте, сколько данных вы уже загрузили, посмотрев на размер существующих данных, и установите заголовок «Range» в вашем NSMutableURLRequest :

[request addValue:@"bytes=x-" forHTTPHeaderField:@"Range"];

.. где x - это размер в байтах данных, которые у вас уже есть. Это загрузит данные, начиная с байта х. Затем вы можете добавить эти данные в ваш файл по мере его получения.

Обратите внимание, что веб-сервер, с которого вы загружаете, должен поддерживать частичную загрузку для ресурса, который вы пытаетесь загрузить - в этом случае он отправляет заголовок Accept-Ranges. Обычно вы не можете возобновить загрузку динамически сгенерированного контента (например, страницы, сгенерированной скриптом на сервере).

0 голосов
/ 11 июня 2009

Посмотрите на стандарт HTTP, чтобы увидеть, как вы бы сформировали запрос для начала передачи ресурса с определенного смещения. Извините, я не могу найти ни одного кода.

0 голосов
/ 10 июня 2009

Единственный способ, который я могу придумать, - разбить загружаемый файл на более мелкие файлы. Вы можете использовать

- (void)connectionDidFinishLoading:(NSURLConnection *)connection

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...