Следва изходният код за изтегляне и кеширане на изображения от отдалечен сървър с помощта на ASIHTTPRequest. Ако сървърът не се актуализира с нови изображения, използвам кеширано копие на изображението. Той кешира всички изображения в първоначалната заявка и работи добре.
Според кода по-долу трябва да проверява сървъра дали е налично ново съдържание всеки път. Проверих регистрационните файлове на сървъра и той отпечатва код за състояние 304. Но когато актуализирах с най-новите изображения, няма да се покаже с ново изображение. вместо да показва кеширано изображение. Но регистрационните файлове на сървъра казват, че изпраща ново изображение с код на състояние 200. За да избегна това поведение, трябва да изтрия приложението и да го инсталирам отново.
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
request.timeOutSeconds = kDefaultTimeInterval;
request.validatesSecureCertificate = NO;
[request setDownloadCache:[ASIDownloadCache sharedCache]];
[request setCachePolicy:ASIAskServerIfModifiedCachePolicy];
[request setCacheStoragePolicy:ASICachePermanentlyCacheStoragePolicy];
[request setSecondsToCache:kSecondsToCache];
[request startSynchronous];
if (![request didUseCachedResponse]) {
NSLog(@" Cache miss. Loading resource %@", location);
} else {
NSLog(@" Cache hit!");
}
NSLog(@" *** image data size: %u bytes", [request.responseData length]);
return ([request error]) ? nil : request.responseData;
какво ми липсва тук?