[英]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.