Время от времени моему приложению нужно получать данные страницы своего App Store. Это файл .txt (в формате json), который содержит информацию о приложении, такую как строка версии.
Когда публикуется новая версия, бинарный файл с новой версией почти сразу же доступен для загрузки. ОДНАКО, для извлеченной json требуется много-много часов, чтобы содержать только что опубликованную информацию. Вероятно, это кэшированная копия, хотя я запрашиваю перезагрузку:
NSString *asInfo = @"https://itunes.apple.com/lookup?bundleId=net.whatsapp.WhatsApp"; // just an example
NSURL *url = [NSURL URLWithString:asInfo];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:url];
request.cachePolicy = NSURLRequestReloadIgnoringLocalCacheData;
Из-за этого существует несколько часов ложной разницы между локальной версией приложения, которое было только что загружено из App Store, и версия, содержащаяся в извлеченном файле.
Я попытался избежать кэширования копии многими способами (не показано выше, включая использование NSURLCache
и NSURLSession
). Ничего не помогло, и я всегда получал кэшированную копию с предыдущей версией.
В конце концов мне удалось получить бесплатную sh копию, добавив:
[request setHTTPMethod: @"POST"];
МОЙ ВОПРОС : Почему простое добавление метода POST приводит к получению файла fre sh, а все остальное терпит неудачу?
Если я удаляю эту единственную строку POST и снова запускаю приложение, я получите неправильный, кешированный файл - снова.
BTW : при вставке того же URL-адреса в Safari также получается файл fre sh.