#objective-c #cocoa-touch #afnetworking
#objective-c #cocoa-touch #afnetworking
Вопрос:
Итак, я хочу загрузить файл с веб-сервера, даже если ответ сервера 304 не изменен. Я использую downloadTaskWithRequest: progress: destination: completionHandler:^(NSURLResponse *response, NSURL *filePath, NSError *error)
метод AFURLSessionManager, который отлично работает для файлов, которые не были изменены. Однако, если ответ сервера равен 304, кажется, что в блоке completionHandler нет допустимого пути к файлу, и в error
сообщении говорится «Ошибка запроса: не изменено (304)».
Я попытался настроить requestCachePolicy AFURLSessionManager на NSURLRequestReloadIgnoringLocalAndRemoteCacheData для NSURLRequestReloadIgnoringLocalAndRemoteCacheData, но это не помогает: хотя путь к файлу задан, данные не могут быть восстановлены из этого пути к файлу.
Может ли кто-нибудь помочь мне, возможно, указав, что именно было бы наилучшей практикой для загрузки файла с помощью AFNetworking и ответа сервера 304. Заранее спасибо!
Ответ №1:
Неважно, я нашел проблему. Мне не нужно устанавливать requestCachePolicy конфигурации NSURLSessionConfiguration. Я всегда добавлял IF_MODIFIED_SINCE_HEADER в параметр запроса downloadTaskWithRequest:
. Если опустить это, это работает.