#iphone #ios #asihttprequest #cache-control #squid
#iPhone #iOS #asihttprequest #контроль кэша #squid
Вопрос:
Я использую ASIHTTPRequest и извлекаю содержимое с нашего сервера, на котором есть кэш Squid. Похоже, что ASIHTTPRequest не получает самую последнюю версию контента.
Как я могу указать ему игнорировать кеш, чтобы я мог получить самую новую версию? Или есть лучший способ сделать это?
Я использую следующее:
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:serviceUrl];
[request setDownloadCache:[ASIDownloadCache sharedCache]];
[request setCachePolicy:ASIAskServerIfModifiedCachePolicy|ASIFallbackToCacheIfLoadFailsCachePolicy];
[request setCacheStoragePolicy:ASICachePermanentlyCacheStoragePolicy];
[request setTimeOutSeconds:50.0];
[request addRequestHeader:@"CacheControl" value:@"no-cache"];
[request startSynchronous];
Комментарии:
1. Похоже, это должно было быть: [запрос addRequestHeader:@значение «Cache-Control»:@»no-cache»];
Ответ №1:
Похоже, заголовок должен быть:
CacheControl: reload
Это должно указывать squid на получение запроса с сервера, но это зависит от конфигурации сервера squid. Возможно, эта функция отключена?
Можете ли вы выполнить принудительную перезагрузку в браузере?
Я думаю, что отсутствие кэша просто означает, что сервер не должен обновлять свой кэш.
Комментарии:
1. если больше ничего не работает, вы могли бы добавить параметр get к вашему запросу с текущим временем
2. для меня отсутствие кэша работает хорошо. Вот что, как я прочитал, это делает: palisade.plynt.com/issues/2008Jul/cache-control-attributes