如何解决使用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 举报,一经查实,本站将立刻删除。