【问题标题】:Getting "Transport Security has blocked a cleartext HTTP" error while using HTTPS api calls使用 HTTPS api 调用时出现“传输安全已阻止明文 HTTP”错误
【发布时间】:2021-01-26 21:48:13
【问题描述】:

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

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

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

这里是代码sn-p:

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

【问题讨论】:

标签: ios swift swift5 xcode12


【解决方案1】:

【讨论】:

    猜你喜欢
    • 2016-01-19
    • 2015-12-22
    • 2017-07-18
    • 2015-10-01
    • 2018-04-17
    • 2017-05-03
    • 2015-12-28
    • 1970-01-01
    • 2014-12-25
    相关资源
    最近更新 更多