AFNetworking загрузка файла, несмотря на получение ответа сервера 304

#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: . Если опустить это, это работает.