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

问题描述 投票:0回答:1

晚上好,我正在开发一个基于 SWAPI 的应用程序(星球大战 API:https://swapi.co/documentation

我收到了 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 协议。

ios swift https
1个回答
7
投票

看来你是对的,SWAPI只支持http协议。

要支持不安全连接,请执行以下操作:

  1. 打开
    info.plist
    文件
  2. 将名为
    App Transport Security Settings
    的 Key 添加为
    Dictionary
    (字典应该是默认类型)
  3. 将名为
    Allow Arbitrary Loads
    的子项添加为
    Boolean
    (布尔值应该是默认类型)。将其设置为
    YES

另请参阅屏幕截图:

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.