NSURLSession/NSURLConnection 在 iOS 9 上的 HTTP 加载失败

137

尝试在iOS9上运行现有应用程序,但在使用AFURLSessionManager时失败。

__block NSURLSessionDataTask *task = [self.sessionManager dataTaskWithRequest:request completionHandler:^(NSURLResponse * __unused response, id responseObject, NSError *error) {
    if (error) {

    } else {

    }
}];

[task resume];

我遇到了以下错误:

Error Domain=NSURLErrorDomain Code=-999 "cancelled.

同时还收到以下日志:

 NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9824
 CFNetwork SSLHandshake failed (-9824)

更新: 我已经对我的解决方案进行了多次更新: NSURLSession/NSURLConnection在iOS 9上发生HTTP加载失败


你确定错误是发生在第一行吗? - BSMP
1
我也遇到了同样的问题。这个链接似乎解决了这个问题:https://dev59.com/Tl0a5IYBdhLWcg3wF1UL - phillies2628
13个回答

1
我已经通过在info.plist中添加一些关键字来解决了这个问题。 我遵循的步骤如下:
1. 打开项目的info.plist文件 2. 添加一个名为NSAppTransportSecurity的字典键。 3. 添加一个名为NSAllowsArbitraryLoads的Boolean子键,并将其值设置为YES,就像下面的图像一样。 4. 清理项目,现在一切都像以前一样正常运行。
参考链接:https://dev59.com/01wY5IYBdhLWcg3wnYx3#32609970

1
除了上述答案外,重新检查您的URL。

在我的情况下,我正在尝试加载 .html 文件。 - Vaishnavi

0
你应该在info.plist中添加 App Transport Security Settings,并在App Transport Security Settings中添加Allow Arbitrary Loads

enter image description here

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

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