1

我正在尝试设置我的开发环境来构建我的第一个 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()
}

为什么会出现此错误,我该怎么做才能克服它?

感谢您的任何帮助,您可以提供。

4

0 回答 0