NSURLConnection (загрузка больших файлов более 500M) - PullRequest
1 голос
/ 07 марта 2012

Я хочу загрузить большой файл (> 500 МБ) в свое приложение с сервера.Я использовал NSURLConnection, который хорошо работает, если сеть очень хорошая.но иногда я пытался загрузить файл размером 500 МБ, но 200 МБ или 100 МБ загружались только в том случае, если сеть не очень хорошая. Это означает, что я получил метод connectionDidFinishLoading, когда задача не была выполнена.установить тайм-аут секунд 30 с, это не сработало. Должен ли я установить 60 с или более? У кого-то есть идея получше, пожалуйста, помогите мне.

Ответы [ 2 ]

0 голосов
/ 07 марта 2012

Вы должны скачать такой большой файл по частям. Укажите поле Content-Range в заголовке вашего HTTP-запроса и запросите только небольшую часть файла сразу. Когда вы получите все порции, вы можете собрать файл вместе.

Вы можете установить заголовки HTTP с помощью NSMutableURLRequest setValue:@"0-1023/*" forHTTPHeaderField:@"Content-Range"];, в этом примере загружается только первый килобайт файла. Смотрите также Content-Range в http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html

0 голосов
/ 07 марта 2012

в connectionDidFinishLoading метод каждый раз проверять длину данных для загрузки и загруженных данных.

длина данных для загрузки увеличивается с помощью этого [response expectedContentLength]; в didReceiveResponse метода

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