我有一个应用程序,使用NSURLConnection与Web服务器进行通信。如果我启用了“自动代理配置”设置,并且该设置中的URL指向了不可用的服务器,则我的NSURLConnection尝试将失败,并显示超时错误。如果我再次发出请求,NSURLConnection将尝试直接连接(必须注意代理失败)并且请求成功。NSURLConnection自动直接连接,如果proxy.pac下载失败
我注意到,Safari会尝试直接连接一旦代理超时,但它会自动执行此操作。我下载了最新的WebKit夜间来源,构建它并试图弄清楚这是如何完成的。对于我的生活,我无法弄清楚WebKit如何获得这种行为。它创建一个NSURLConnection,但是 - 连接:didFailWithError:永远不会被调用。代理超时之后,-connection:didReceiveResponse:delegate被调用,因为它直接连接。我可以看到,WebKit代码中没有任何内容检测到此代理超时并强制重新加载。这必须发生在NSURLConnection/NSURLRequest中。
如何让NSURLConnection在代理失败时自动重试直接连接?我希望它能像Safari/WebKit中那样工作。