ios - iOS 9 中的 HTTPS 请求 : NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9802)

标签 ios ios9

我正在更新我的应用程序以适应 Apple 的新 ATS .在不对 Plist-Info 进行任何更改的情况下,以下代码会在 vanilla `iOS 9 模拟器中的 sendSynchronousRequest() 处抛出错误。

NSURL *url  =[NSURL URLWithString:@"https://Google.com"];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc]init];
[request setHTTPMethod:@"GET"];
[request setURL:url];

NSURLResponse *urlResponse = nil;
NSError *error = nil;    
NSData *reponse = [NSURLConnection sendSynchronousRequest:request
                                        returningResponse:&urlResponse
                                                    error:&error];

错误:

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

关于这个问题背后的原因有什么想法吗?

注意:我知道 NSURLConnection 已弃用。但是,如果我在 Plist 中添加 AllowArbitraryLoads,此调用会起作用。

最佳答案

NSURLSession/NSURLConnection HTTP 加载失败(kCFStreamErrorDomainSSL,-9802) 对应不支持“前向保密”的服务器。

要解决此问题,请按如下方式向 .plist 文件添加域异常(exception):

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSExceptionDomains</key>
    <dict>
        <key>test.testdomain.com</key>
        <dict>
            <key>NSIncludesSubdomains</key>
            <true/>
            <key>NSTemporaryExceptionRequiresForwardSecrecy</key>
            <false/>
        </dict>
    </dict>
</dict>

关于ios - iOS 9 中的 HTTPS 请求 : NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9802),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31662134/

相关文章:

ios - 如何将角半径应用于 CAShapeLayer(而不是 UIView)的特定角

ios - 如何在 Swift 3.0 中使用 SDWebImage 使用完成 block ?

iOS 9 延迟位置更新不起作用

ios - 没有 Xib 和 Storyboard的旧应用程序。使ios9兼容

ios - SpriteKit 中设备的基本定位

ios9 - 在 IOS 中打开蓝牙设置菜单

ios - 从 iOS 应用程序打开文件查看器 (PDF)

iphone - 应用程序本身的应用程序名称

iOS:后台线程/多线程?

ios - 如何在xcode中添加将值传递给文本框的按钮