我在同一个网络上托管了一个IOS应用程序和一个点网API。我有一个IP w.x.y.z,我试图通过info.plist允许它,因为它没有SSL证书。我了解不支持IP地址,因此我正在使用xip.io将其转换为域名。
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoadsInWebContent</key>
<true/>
<key>NSExceptionDomains</key>
<dict>
<key>w.x.y.z.xip.io</key>
<dict>
<key>NSAllowsLocalNetworking</key>
<true/>
<key>NSAllowsArbitraryLoads</key>
<true/>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSExceptionMinimumTLSVersion</key>
<string>TLSv1.2</string>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
<key>NSExceptionRequiresForwardSecrecy</key>
<false/>
</dict>
</dict>
</dict>
我的Swift代码:
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
let url = URL(string: "https://w.x.y.z.xip.io:44328/api/values/1")!
print("START")
let task = URLSession.shared.dataTask(with: url) {(data, response, error) in
guard let data = data else { return }
print(String(data: data, encoding: .utf8)!)
}
print("DONE")
task.resume()
}
转到https://w.x.y.z.xip.io:44328/api/values/1可以在我的浏览器中很好地工作。当我尝试运行它时,我会得到
019-01-25 01:14:10.427331-0500 test_api[20555:3495649] ATS failed system trust
2019-01-25 01:14:10.427505-0500 test_api[20555:3495649] System Trust failed for [1:0x600000f8c900]
2019-01-25 01:14:10.427584-0500 test_api[20555:3495649] TIC SSL Trust Error [1:0x600000f8c900]: 3:0
2019-01-25 01:14:10.432453-0500 test_api[20555:3495649] NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9802)
2019-01-25 01:14:10.432601-0500 test_api[20555:3495649] Task <964CC4A4-C3C3-4349-80AA-E1DFC04920DA>.<1> HTTP load failed (error code: -1200 [3:-9802])
2019-01-25 01:14:10.433065-0500 test_api[20555:3495648] Task <964CC4A4-C3C3-4349-80AA-E1DFC04920DA>.<1> finished with error - code: -1200