有使用 iOS 9 beta 1 的人遇到过这个问题吗?
我使用标准 NSURLConnection 连接到 Web 服务,一旦调用 Web 服务,我就会收到以下错误。目前该功能适用于 iOS 8.3
可能的测试版错误吗?任何想法或想法都会很棒!我知道 iOS 9 开发还处于早期阶段
这是完整的错误:
CFNetwork SSL 握手失败 (-9824)
NSURLSession/NSURLConnection HTTP 加载失败(kCFStreamErrorDomainSSL,-9824)
NSURLRequest * urlRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:@"https://mywebserviceurl"]];
NSURLResponse * response = nil;
NSError * error = nil;
NSData * data = [NSURLConnection sendSynchronousRequest:urlRequest
returningResponse:&response
error:&error];
iOS 9 和 OSX 10.11 要求您计划从中请求数据的所有主机都使用 TLSv1.2 SSL,除非您在应用程序的 Info.plist 文件中指定例外域。
Info.plist 配置的语法如下所示:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>yourserver.com</key>
<dict>
<!--Include to allow subdomains-->
<key>NSIncludesSubdomains</key>
<true/>
<!--Include to allow insecure HTTP requests-->
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
<!--Include to specify minimum TLS version-->
<key>NSExceptionMinimumTLSVersion</key>
<string>TLSv1.1</string>
</dict>
</dict>
</dict>
如果您的应用程序(例如第三方网络浏览器)需要连接到任意主机,您可以这样配置:
<key>NSAppTransportSecurity</key>
<dict>
<!--Connect to anything (this is probably BAD)-->
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
如果您必须这样做,最好更新您的服务器以使用 TLSv1.2 和 SSL(如果它们尚未这样做)。这应该被视为临时解决方法。
截至今天,预发行文档并未以任何特定方式提及任何这些配置选项。一旦完成,我将更新答案以链接到相关文档。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)