Как избежать кэширования данных с помощью NSURLRequest

#iphone #http-headers #nsurlrequest

#iPhone #http-заголовки #nsurlrequest

Вопрос:

У меня возникла эта проблема при разработке приложения, где запрос представлял собой простой URL, а ответ возвращал XML.

Я использовал, [NSURLRequest sendsynchronousrequest] и заголовок запроса Cache-Control по умолчанию имел max-age значение 81769 по умолчанию. Из-за этого ответ, который я получил, был не последним XML, а старым XML. Safari и IE вернули старый XML, но Chrome и Firefox вернули обновленный последний XML.

Я предположил, что причина, по которой IE и Safari вернули старый XML, заключалась в том, что Cache-Control максимальный возраст был 81769 , тогда как возвращался тот же заголовок при проверке в Chrome или Firefox 0 .

Итак, я вручную установил max-age значение as 0 для поля заголовка и получил последний XML-файл в качестве ответа.

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

Ответ №1:

Вы хотите посмотреть на набор NSURLRequestCachePolicy значений enum.

В частности, вы можете создать NSURLRequest объект с помощью [NSURLRequest requestWithURL:cachePolicy:timeoutInterval:] метода и указать NSURLRequestReloadIgnoringLocalCacheData или что-то подобное для политики кэширования.