我的info.plist文件中有以下几行:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>mysebserver.com</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
<true/>
<key>NSTemporaryExceptionMinimumTLSVersion</key>
<string>TLSv1.1</string>
</dict>
</dict>
</dict>因此,它非常适合我的API调用。
在我的视图控制器中,我有一个试图显示web内容的UIWebView:
NSURLRequest* request = [NSURLRequest requestWithURL:[NSURL URLWithString:self.webSiteUrlSting] cachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData timeoutInterval:30];
[self.theWebView loadRequest:request];在iOS7和iOS8上,它工作得很好,但是在iOS9上,它在调用UIWebView委托- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error后显示了一个错误。
应用程序传输安全性阻止了明文HTTP (http://)资源负载,因为它是不安全的)。临时异常可以通过应用程序的Info.plist文件进行配置。
委托方法包含如下所示的错误实例:
错误Domain=NSURLErrorDomain代码=-1022“无法加载资源,因为App策略要求使用安全连接。UserInfo={NSUnderlyingError=0x7fbaa253ba20 {Error Domain=kCFErrorDomainCFNetwork Code=-1022“无法加载资源,因为应用程序传输安全策略要求使用安全连接。无法加载应用程序传输安全策略,因为应用程序传输安全策略要求使用安全连接。由于应用程序传输安全策略要求使用安全连接},所以无法加载应用程序传输安全策略、UserInfo={NSErrorFailingURLStringKey=requestedwebsite.com,}、NSErrorFailingURLStringKey=requestedwebsite.com,NSErrorFailingURLKey=requestedwebsite.com、NSLocalizedDescription=The资源。
我的问题是如何使我的API请求继续工作,并使UIWebView也能工作。
发布于 2015-10-19 16:05:35
将此异常添加到您的NSAppTransportSecurity dict中:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>https://stackoverflow.com/questions/33218894
复制相似问题