如何使用 headers 和未签名的证书 Swift 3 发出 HTTPS GET 请求?

How to make a HTTPS GET request with headers with unsigned Certificate Swift 3?

我正在尝试向我的网站 api 发出 https 请求,我已经为此工作了 2 天,但没有找到满足我所有需求的解决方案(它在 iOS 10).我的 https 证书未签名 (https://api.example.de/v1/something),令牌为 'Authorization' header。然后我想下载 JSON 文件并解析它。这是我的代码:

func testDownload(token: String){

let url = URL(string: "https://api.example.de/v1/blabla")
        var request = URLRequest(url: url!)
        request.httpMethod = "GET"
        request.addValue("Token \(token)", forHTTPHeaderField: "Authorization")
        let session = URLSession.shared

        let task = session.dataTask(with: request, completionHandler: { (data, response, error) -> Void in
            do{
                let json = try JSONSerialization.jsonObject(with: data!, options: .allowFragments) as! [String: AnyObject]
                let parsed_data = json["data"] as? [[String: AnyObject]] ?? []
                let firstName = parsed_data[0]["firstName"] as? String
                print("Firstname for first item is: \(firstName)")
                self.employeeName.text = firstName

            } catch let error as NSError{
                print("Sorry there is an Error: \(error)")
            }
        })
        task.resume()

我收到这个似乎无关的错误:

2017-03-03 10:16:52.636 44 App[1763:34479] NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9843)
fatal error: unexpectedly found nil while unwrapping an Optional value

顺便说一句,我已经把 info.plist 改成了 This Screenshot 并且还在两个不同的 API 上测试了这段代码(一个使用经过认证的 SSL,另一个使用普通的 HTTP 协议)并解析了数据。

我做错了什么?请帮助我

问题仅出在证书上,如果 HTTPS 证书未签名,则无法发出 HTTP 请求。如果是 HTTPS,则必须签署证书。

我们签署证书后问题就解决了。