ASIHTTPRequest — настройка на игнорирование кэша / прокси

#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