gpt4 book ai didi

ios - Xcode 7.3 : NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9802)

转载 作者:行者123 更新时间:2023-11-29 12:02:43 24 4
gpt4 key购买 nike

我的项目在 Xcode 7.3 上运行。

当我发出一个 GET 请求时,我得到了标题和信息的错误:

NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9802)

错误信息:

The certificate for this server is invalid. You might be connecting to a >server that is pretending to be “https://api.domain.com” which >could put your confidential information at risk.

https://api.domain.com:9002

我搜索了解决方案,但无济于事。将这些添加到 info.plist

 <key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>

或(我当前的设置)

<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
<key>NSExceptionDomains</key>
<dict>
<key>https://api.domain.com:9002</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
<false/>
</dict>
</dict>
</dict>

我搜索了:

https://stackoverflow.com/a/32912578/291240

https://stackoverflow.com/a/36209583/291240

https://stackoverflow.com/a/34999957/291240

最佳答案

您的服务器使用的 SSL 证书无效,或者您的服务器根本不是 https。

请尝试使用 http://而不是 https://进行连接

PS:我无法在浏览器中打开此链接,https://api.domain.com:9002

但这可能是一个占位符,所以请试试这个。

但除此之外,还有一种方法可以忽略错误:

警告 - 这也会使您的代码容易受到 MitM 攻击,所以最好是修复服务器上的 SSL

将您的 NSURLConnection 委托(delegate)设置为 self 并添加以下代码

    - (BOOL)connection:(NSURLConnection *)connection canAuthenticateAgainstProtectionSpace:(NSURLProtectionSpace *)protectionSpace {
return [protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust];
}

- (void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge {
if ([challenge.protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust])
if ([trustedHosts containsObject:challenge.protectionSpace.host])
[challenge.sender useCredential:[NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust] forAuthenticationChallenge:challenge];

[challenge.sender continueWithoutCredentialForAuthenticationChallenge:challenge];
}

对于 NSURLSESSION 检查这个答案,NSURLSession Delegate


更新

以上代码容易受到 MitM 攻击,

请检查这个SSL Pinning for NSURLSession ,以一种安全的方式。

关于ios - Xcode 7.3 : NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9802),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36300269/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com