NSURLSession/NSURLConnection HTTP加载失败(kCFStreamErrorDomainSSL,-9813)错误。

3
我在进行HTTPS请求时遇到了错误:
NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9813)。
我通过谷歌搜索发现,有一些解决方案可以绕过ATS(应用程序传输安全),方法是在项目信息的plist文件中添加以下键。这是iOS9及以上版本的问题。
键如下: key :- NSAppTransportSecurity value : -NSAllowsArbitraryLoads : true 我尝试了这个解决方案,但我仍然一直遇到相同的问题。我陷入了困境,请问有人可以帮帮我吗?

显然,这是在iOS版本> 10中发生的。要修复它,请按照下面的链接https://dev59.com/dozda4cB1Zd3GeqPp7fB - jose920405
2个回答

0

您需要在info.plist文件中的NSAppTransportSecurity字典中将NSAllowsArbitraryLoads键添加为YES。

enter image description here


感谢你的回复,@Bhumika。但是我已经尝试过这个解决方案了,它并没有起作用。 - i_Intiution
这可能是危险的。此外,苹果也表示使用此解决方案将触发应用程序审核 [来源] (https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html#//apple_ref/doc/uid/TP40009251-SW59)。 - franiis

0

我通过实现NSURLConnction的身份验证挑战代理方法解决了我的问题。

以下实现解决了我的问题。

- (void)connection:(NSURLConnection *)connection willSendRequestForAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge {
       NSURLCredential *credential = [NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust];
      [challenge.sender useCredential:credential forAuthenticationChallenge:challenge];

      [challenge.sender continueWithoutCredentialForAuthenticationChallenge:challenge];
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接