我有问题。 Safari可以加载页面h ttp://ip-api.com/json
,但URLSession任务不能。
这是viewDidLoad
let url = URL(string: "http://ip-api.com/json")!
let request = URLRequest(url: url)
let task = URLSession.shared.dataTask(with: request, completionHandler: {(data, response, error) -> Void in
print("this is the server response: \(response)")
if error != nil {
print("some error: \(error)")
} else {
if let urlContent = data {
print(urlContent)
}
}
})
task.resume()
控制台日志报告以下错误内容:
...一些错误:可选(错误域= NSURLErrorDomain代码= -1022"无法加载资源,因为App Transport Security策略要求使用安全连接。" UserInfo = {NSUnderlyingError = 0x60800005bc00 {错误域= kCFErrorDomainCFNetwork代码= -1022"(null)"},NSErrorFailingURLStringKey = http://ip-api.com/json,NSErrorFailingURLKey = http://ip-api.com/json,NSLocalizedDescription =资源不能因为App Transport Security策略需要使用安全连接而加载。})
答案 0 :(得分:0)
有一个小错误!编辑plist项目时
我在<key>
和属性名称之间留下了一个空格,如下所示
<key> NSAppTransportSecurity</key>
。遗憾
答案 1 :(得分:0)
在您的info.plist文件中添加此内容,
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
<key>NSExceptionDomains</key>
<dict/>
<key> http://ip-api.com</key>
<string></string>
</dict>
它适用于你。