POST request error: NSURLConnection HTTP load failed iOS 10

POST request error: NSURLConnection HTTP load failed iOS 10

我是 iOS 编程新手。我想将我的应用连接到 my web service (HTTPS).

当我 运行 POST 在 iOS 10 中使用 'Alamofire 4.0' 请求时,为什么 XCode 告诉我这个错误?

当我使用iOS 9 模拟器时没有出现这个错误。正如人们在 Whosebug 上所说的那样,我尝试了各种方法,其中 none 解决了我的问题。

更新:

我已经在 info.plist 中添加了这个,但仍然出现同样的错误。

如何在 iOS 10 中实现 ATS?

提前致谢。

应用传输安全 (ATS) 在应用与其后端之间的安全连接中实施最佳实践。 ATS 防止意外泄露,提供安全的默认行为,并且易于采用;它在 iOS 9 和 OS X v10.11 中也默认启用。无论您是创建新应用还是更新现有应用,都应尽快采用 ATS。

如果您正在开发新应用,您应该只使用 HTTPS。如果您已有应用程序,则应立即尽可能多地使用 HTTPS,并制定计划以尽快迁移应用程序的其余部分。此外,您通过 higher-level API 进行的通信需要使用具有前向保密性的 TLS 1.2 版进行加密。如果您尝试建立不符合此要求的连接,则会抛出错误。如果您的应用需要向不安全的域发出请求,您必须在应用的 Info.plist 文件中指定此域。

详情请参考Apple Document.

您需要在 Info.plist

内部进行更改
<key>NSAppTransportSecurity</key>
    <dict>
        <key>NSAllowsArbitraryLoads</key>
        <true/>
    </dict>

一样打开Info.plist文件

在里面添加 TransportSecurity

就我而言,我将 API 域上的 SSL 证书更改为 Apple 在 this link 中提到的可信证书。

检查你的移动网络,主要是这个原因。