我正在尝试设置我的开发环境来构建我的第一个 iOS 应用程序,并且在尝试从我的应用程序中执行 REST 调用时遇到了问题。调用正在使用自签名证书(由 OpenSSL 创建)的端点服务(Java Springboot 应用程序),该证书利用在我的本地主机(端口 8443)上运行的 JWT 令牌。
这是我得到的具体错误:
domain: "NSURLErrorDomain" - code: 18446744073709550414 0x00007fca19c9e3b0
这是我为解决问题所做的工作:
- 我在 info.plist 文件中设置了“NSAppTransportSecurity”
- 我在端点服务上禁用了 SSL,然后尝试执行请求,一切正常(所以它似乎只是与我的 SSL 请求有关)
- 使用 Postman,我能够成功地从 SSL 端点检索数据
- 我将 SSL 证书加载到我正在使用的 iOS 模拟器中的配置文件中(它有绿色检查“已验证”)
这是我的代码:
func obtainState() {
let postEndpoint: String = "https://localhost:8443/api/state"
let url = NSURL(string: postEndpoint)!
let session = NSURLSession.sharedSession()
let request = NSMutableURLRequest(URL: url)
request.HTTPMethod = "GET"
request.setValue("eyJhbGciOiJIUzI1NiJ9.eyJ....", forHTTPHeaderField: "Authorization")
session.dataTaskWithRequest(request, completionHandler: { ( data: NSData?, response: NSURLResponse?, error: NSError?) -> Void in
guard let realResponse = response as? NSHTTPURLResponse where
realResponse.statusCode == 200 else {
print("Not a 200 response")
return
}
if let postString = NSString(data:data!, encoding: NSUTF8StringEncoding) as? String {
print("POST: " + postString)
}
}).resume()
}
为什么会出现此错误,我该怎么做才能克服它?
感谢您的任何帮助,您可以提供。