Я не могу дать однозначного ответа, но могу предоставить более эмпирическое доказательство и некоторое обоснование того, что ответ НЕТ.У меня есть приложение, которое использует SCNetworkReachabilityGetFlags
для проверки доступности определенного хоста (например, www.mysite.com).В зависимости от этой проверки достижимости, он затем использует [NSMutableData dataWithContentsOfURL:]
для загрузки данных.
Приложение всегда работало нормально, но в последнее время я занимался некоторым кодированием на работе, где доступ к сети осуществляется через корпоративный HTTP-прокси,При запуске приложения в iOS Simulator (который использует настройки прокси-сервера, настроенные на моем Mac), проверка доступности не проходит.Сначала я подумал, что, возможно, симулятор iOS не использует настройки прокси-сервера Mac, но Mobile Safari в симуляторе работал нормально.Поэтому я удалил проверку доступности в своем приложении, и звонок на [NSMutableData dataWithContentsOfURL:]
работал нормально.Это может указывать на то, что SCNetworkReachability не учитывает настройки прокси.
Подумав об этом, вероятно, это правильное поведение, если вы рассматриваете SCNetworkReachability как работающий на уровне TCP / IP, а не на уровне HTTP, точно так же, как ping google.com
на Mac / PC позадикорпоративный брандмауэр тоже не работает.Прокси-сервер HTTP (как следует из названия) предназначен для протокола HTTP, а не для всего стека TCP / IP.
Прочитав ответы на этот вопрос о достижимости Я склонен к бинумоя проверка доступности вообще.Хотя до сих пор это было проблемой в симуляторе, в других ситуациях это может быть проблематично (например, в публичной точке доступа WiFi, требующей аутентификации).