我正在做一个请求来自URL的json来显示数据的应用程序。一切都运行正常,但最近API转向https但证书无效。因此,每当我尝试从URL中加载时,我都会:
NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9813)
我尝试添加
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
到我的.plist(自从API之前就已经在这里了)
我使用SwiftyJSON,我的代码看起来像这样
override func viewDidLoad() {
super.viewDidLoad()
json = JSON(data: getDataFromAPI("https://testaws.my_url.com/test"))
}
func getDataFromAPI(urlToRequest: String) -> NSData {
return NSData(contentsOfURL: NSURL(string: urlToRequest)!)!
}
我也尝试过使用NSURLConnection,添加了两种连接方法,但它仍然无法正常工作
答案 0 :(得分:0)
我认为现在是时候使用另一种方法来检索json,就像使用与SwiftyJSON集成的Alamofire库一样。在README中,有一个部分可以让您自定义证书的信任策略(参考:https://github.com/Alamofire/Alamofire#security)
答案 1 :(得分:0)
我遇到同样的问题我的解决方案可能会帮助你,请尝试一下
NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9813)
以上错误意味着您的SSL证书已过期或您的设备时间未正确设置。
1)检查您的SSL证书已过期天气。
2)检查构建应用程序的设备时间。