UseProtocolCachePolicy скрыть код состояния 304

Я устанавливаю cachePolicy по запросу URL. Первый вызов URL-адреса (GET) возвращает код состояния 200. Второй вызов того же URL-адреса возвращает 200.

Если использовать клиент отдыха, я получаю для первого вызова 200, а для второго с правильным заголовком (If-None-Match) 304

Читая онлайн, я понимаю, что iOS сериализует первый запрос с кодом состояния 200 и извлекает его для второго вызова.

Есть способ получить 304 вместо 200 в UrlCache или понять, пришли ли данные из кеша, а не из сети.


person Andrea Bozza    schedule 17.11.2017    source источник
comment
stackoverflow .com/questions/40976132/   -  person Leo Dabus    schedule 17.11.2017


Ответы (1)


Из http://jonathanblog2000.blogspot.com/2017/07/ios-uiwebview-nsurlsession-cache.html :

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

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

person dotMorten    schedule 22.06.2018