iOS swift:应用程序传输安全已阻止明文HTTP(HTTP://)资源
晚上,我正在开发一个基于SWAPI(星球大战api:)的应用程序 我得到了ATS错误:iOS swift:应用程序传输安全已阻止明文HTTP(HTTP://)资源,ios,swift,api,https,Ios,Swift,Api,Https,晚上,我正在开发一个基于SWAPI(星球大战api:)的应用程序 我得到了ATS错误:应用程序传输安全已阻止明文HTTP(HTTP://)资源加载,因为它不安全。可以通过应用程序的Info.plist文件配置临时异常。 我不明白原因。我的baseURL采用https格式 struct NetworkManager { let baseURL = "https://swapi.co/api/" let session = URLSession(configuration: .def
应用程序传输安全已阻止明文HTTP(HTTP://)资源加载,因为它不安全。可以通过应用程序的Info.plist文件配置临时异常。
我不明白原因。我的baseURL
采用https格式
struct NetworkManager {
let baseURL = "https://swapi.co/api/"
let session = URLSession(configuration: .default)
func fetchEndpoint(endpoint: Endpoint, completion: @escaping (_ response: Result) -> Void) {
self.fetchURL(url: baseURL + endpoint.URL(), completion: completion)
}
func fetchURL(url: String, completion: @escaping (_ response: Result) -> Void) {
let url = URL(string: url)!
let request = URLRequest(url: url)
let task = session.dataTask(with: request) { data, response, error in
if error != nil {
completion(.Failure(error))
} else {
if let data = data {
if let json = try? JSONSerialization.jsonObject(with: data, options: []) {
OperationQueue.main.addOperation({
switch json {
case let objectResponse as JSONArray: completion(.Success(objectResponse as AnyObject?))
case let objectResponse as JSONDict: completion(.Success(objectResponse as AnyObject?))
default: break
}
})
}
}
}
}
task.resume()
}
}
请给我一个提示!!
我只是个新手,我猜SWAPI只支持http协议。似乎你是对的,SWAPI只支持http协议 要同时支持不安全连接,请执行以下操作:
info.plist
文件App Transport Security Settings
的键添加为Dictionary
(Dictionary应为默认类型)允许任意加载
的子键添加为布尔值
(布尔值应为默认类型)。将其设置为YES
看到这种情况我很惊讶,你100%确定吗?因为在阅读SWAPI的文档时,有一些httpsok sry的例子,看起来不够接近。你说得对。这很奇怪,但是只有两个使用https的示例,其余的使用http。也许是一个输入错误,他可以在异常中添加一个域,而不是禁用整个ATS功能