Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/121.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS swift:应用程序传输安全已阻止明文HTTP(HTTP://)资源_Ios_Swift_Api_Https - Fatal编程技术网

iOS swift:应用程序传输安全已阻止明文HTTP(HTTP://)资源

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

晚上,我正在开发一个基于SWAPI(星球大战api:)的应用程序

我得到了ATS错误:
应用程序传输安全已阻止明文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功能