2011-01-27 3 views
0

NSURLConnection을 사용하여 웹 서버와 통신하는 앱이 있습니다. 자동 프록시 구성 설정을 사용할 수 있고 해당 설정의 URL이 사용할 수없는 서버를 가리키는 경우 NSURLConnection 시도가 시간 초과 오류와 함께 실패합니다. 요청을 다시하면 NSURLConnection은 직접 연결을 시도합니다 (프록시가 실패했음을 알려야 함) 요청이 성공합니다.NSURLConnection proxy.pac 다운로드가 실패하면 자동으로 직접 연결

프록시가 시간 초과되면 사파리가 직접 연결을 시도하지만 자동으로 처리하는 것으로 나타났습니다. 나는 최신 WebKit 야간 소스를 다운로드하고, 빌드하고, 이것이 어떻게 수행되는지 알아 내려고 시도했다. 내 인생에서 WebKit이이 동작을 얻는 방법을 알 수는 없습니다. 그것은 NSURLConnection을 생성하지만 -connection : didFailWithError : 결코 호출되지 않습니다. 프록시가 시간 초과 된 후 직접 연결 했으므로 -connection : didReceiveResponse : 대리자가 호출됩니다. WebKit 코드에서 볼 수있는 것은 없지만이 프록시 시간 초과를 감지하고 다시로드해야합니다. 이것은 NSURLConnection/NSURLRequest에서 발생해야합니다.

프록시 실패시 자동 연결을 자동으로 다시 시도하도록 NSURLConnection을 얻으려면 어떻게해야합니까? Safari/WebKit에서와 똑같이 작동하고 싶습니다.

답변

0

나는 그것을 알아 냈다. 요청 제한 시간 간격과 관련이 있습니다. NSURLRequest의 기본 시간 초과 간격은 60 초입니다. NSURLConnection이 직접 연결로 떨어지지 않도록 초기 프록시 시간 초과가 발생하는 데 거의 90 초가 걸렸습니다. 요청에서 타임 아웃을 늘리면 작업이 시작되었습니다.