微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用HTTPS api调用时出现“传输安全性已阻止明文HTTP”错误

如何解决使用HTTPS api调用时出现“传输安全性已阻止明文HTTP”错误

我在xcode中遇到此错误:“应用传输安全性由于不安全,阻止了明文HTTP(http://)资源加载。可以通过应用的Info.plist文件配置临时异常。”

关键是我在api调用中使用了https 。我根本不使用http。但是仍然出现此错误

我还在info.plist文件添加了“应用程序传输安全设置:允许任意加载:是”。

这是代码段:

import Foundation

enum MovieError: String,Error  {
    case responseProblem
    case decodingProblem
    case encodingProblem
}

struct NetworkManager {
    let baseURL = "https://ee15abd0abc1.ngrok.io/api"
    let url: URL
    let API_KEY = ""
    
    init(endPoint: String) {
        let resourceURL = "\(baseURL)/\(endPoint)"
        guard let url = URL(string: resourceURL) else { fatalError() }
        self.url = url
    }
    
    func login(_ login: Login,completion: @escaping(Result<LoginToken,MovieError>) -> Void) {
        
        do {
            var urlRequest = URLRequest(url: self.url)
            urlRequest.httpMethod = "POST"
            urlRequest.addValue("application/json",forHTTPHeaderField: "Content-Type")
            urlRequest.httpBody = try JSONEncoder().encode(login)
            
            let dataTask = URLSession.shared.dataTask(with: urlRequest) { (data,response,error) in
                
                guard let httpResponse = response as? HTTPURLResponse,httpResponse.statusCode == 200,let jsonData = data else {
                    completion(.failure(.responseProblem))
                    return
                }
                
                do {
                    let loginToken = try JSONDecoder().decode(LoginToken.self,from: jsonData)
                    completion(.success(loginToken))
                } catch {
                    completion(.failure(.decodingProblem))
                }
            }
            
            dataTask.resume()
        } catch {
            completion(.failure(.encodingProblem))
        }
    }
}

解决方法

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。