繁体   English   中英

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

[英]Getting "Transport Security has blocked a cleartext HTTP" error while using HTTPS api calls

我在 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))
        }
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM