Симулятор iOS получает соединениеDidReceiveResponse без интернета - PullRequest
1 голос
/ 11 декабря 2011

Я думал, стоит ли мне публиковать этот вопрос, но я пытался понять, что может происходить, и не понимаю.

Мое приложение загружает некоторые XML-файлы с сервера. Я пробовал это без подключения к интернету (мой маршрутизатор выключен, Wi-Fi выключен), но симулятор продолжает получать ответ HTTP 200 и показывает загруженные данные.

Я зарегистрировал код состояния ответа и получил 200, а URL-адрес currentRequest и информация верны (URL-адрес ресурса).

Есть ли кеш или что-то, где симулятор получает данные?

Значок сети в строке состояния на симуляторе всегда включен.

Ответы [ 2 ]

2 голосов
/ 11 декабря 2011

Вы можете попробовать этот код. Он не кэширует данные.

 NSMutableDictionary* headers = [[[NSMutableDictionary alloc] init] autorelease];
[headers setValue:@"no-cache" forKey:@"Cache-Control"];
[headers setValue:@"no-cache" forKey:@"Pragma"];

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:TIMEOUT_REQUEST];
[request setHTTPMethod:@"GET"];
[request setAllHTTPHeaderFields:headers];
1 голос
/ 02 мая 2012

Единственный способ исправить это - использовать следующий метод NSMUtableURLRequest:

[request setCachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData];

Значение NSURLRequestReloadIgnoringLocalAndRemoteCacheData является самым строгим: «никогда ничего не кэшировать!»опцию, но если вам нужен более конкретный элемент управления, посмотрите документацию для перечисления NSURLRequestCachePolicy для всех возможных опций.

...