У меня есть приложение, которое использует NSURLConnection для связи с веб-сервером. Если у меня включен параметр автоматической настройки прокси-сервера и URL-адрес в этом параметре указывает на недоступный сервер, моя попытка NSURLConnection завершится неудачно с ошибкой тайм-аута. Если я сделаю запрос еще раз, NSURLConnection попытается установить прямое соединение (он должен отметить, что прокси-сервер не выполнен) и запрос будет успешным.
Я заметил, что Safari попытается установить прямое соединение, как только прокси отключится, но это происходит автоматически. Я скачал последний ночной источник WebKit, собрал его и попытался выяснить, как это сделать. Что касается жизни, я не могу понять, как WebKit получает такое поведение. Он создает NSURLConnection, но -connection: didFailWithError: никогда не вызывается. По истечении времени ожидания прокси вызывается -connection: didReceiveResponse: делегат, поскольку он установил прямое соединение. Ничто в коде WebKit, которое я вижу, не обнаруживает этот тайм-аут прокси и вызывает перезагрузку. Это должно происходить в NSURLConnection / NSURLRequest.
Как заставить NSURLConnection автоматически повторить прямое соединение при сбое прокси? Я хочу, чтобы он работал точно так же, как в Safari / WebKit.