0

Итак, вот вопросКак мы можем обнаружить перенаправление брандмауэра или sonicwall для нашего обычного запроса на устройствах iOS?

Много раз вы запускаете свое приложение, и ваш первый запрос API терпит неудачу, и вы понимаете, что даже при том, что вы подключены через Интернет. Вам необходимо войти в систему для своего брандмауэра вашего офиса или домашней сети или sonicwall и войдите в систему

Итак, вам нужно открыть сафари и открыть страницу sonicwall и войти туда и вернуться в наше приложение и запустить его снова.

Я хочу, чтобы мое приложение, чтобы обнаружить то же самое и показать переадресованную HTML-страницу в UIWebView и как только authintication отделок я хочу, чтобы выполнить первоначальный запрос жгутов мое приложение

Мой вопрос

1> Является ли это возможным ?

2> Если да, то как я могу это достичь?

ответ

0

Я хотел бы предложить использовать те же URL-адреса зондов для порталов, которые Apple использует в Safari iOS для максимальной совместимости. Если эти URL возвращают 200, вы не должны находиться за (хорошим) пленным порталом, предполагая, что я правильно помню детали.

Вы можете говядину далее, используя API-интерфейсы достижимости, чтобы обнаруживать сетевые изменения и изучать этот URL вместе с URL-адресом Google generate_204. И в некоторых местах вы обнаружите, что Google заблокирован (Китай, IIRC), и в этом случае вы также можете рассмотреть URL с известным, прогнозируемым, заслуживающим доверия машиной значением, таким как URL корневого сертификата Apple. :-)

Когда пользователь заходит, вы должны получить другое событие изменения достижимости, после чего по крайней мере один из ваших пробных портальных пробников будет успешным, и вы сможете переиздать любые неурегулированные запросы.

+0

Как узнать целевой URL-адрес, к которому он перенаправляется? –

+0

Когда вы обнаруживаете, что находитесь за пленным порталом, выполните обычный запрос загрузки URL-адреса для некоторого случайного URL-адреса (в идеале, что-то, что вряд ли будет в кэше DNS) с NSURLConnection или NSURLSession. Укажите делегата и реализуйте метод обработки переадресации. Возьмите URL-адрес и отправьте пользователя в Safari. Или, если вы все равно выполняете запросы, просто реализуйте метод обработки переадресации, и если вы видите URL-адрес, который не имеет смысла (то есть перенаправление на локальный IP-адрес), предположите, что вы находитесь за скрытым порталом и отправьте пользователя в Safari. – dgatwood