【发布时间】:2022-07-25 20:18:53
【问题描述】:
我试图在我的家庭网络中调用我的 api,但由于某种原因,我收到以下错误消息:
finished with error [-1202] Error Domain=NSURLErrorDomain Code=-1202“此服务器的证书无效。您可能正在连接到伪装成“192.168.179.185”的服务器,这可能会放入您的机密信息有风险。”
我尝试了一些解决方案,但没有一个适合我的代码。
import SwiftUI
import EFQRCode
struct ShowQRCodeView: View {
//@Binding var isLoggedIn : Bool
@Binding var deviceId : String
@Binding var apiKey : String
@Binding var userId : String
@Binding var employeeId : Int
@State private var x = UUID().uuidString
@State var users = [User]()
var body: some View {
VStack(){
Form{
Section("QR-Code"){
if let cgImage = EFQRCode.generate(for: deviceId) {
Image(uiImage: UIImage(cgImage: cgImage)).resizable().frame(width: 150, height: 150)
}
Button("Login"){
Task{
await doHTTPUserCall()
}
}
}
}.frame(height: 180)
}.onAppear {
if (deviceId == "") {
deviceId = x // Could change here
}
}
}
func doHTTPUserCall() async {
var url = "https://192.168.179.185:8090/CC0001/BE/admin/api/v1/employee/deviceid/"
url += String(deviceId)
guard let reqUrl = URL(string: url) else {
print("Invalid URL")
return()
}
var req = URLRequest(url: reqUrl)
req.httpMethod = "GET"
let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd"
formatter.timeZone = TimeZone(abbreviation: "ETC")
let task = URLSession.shared.dataTask(with: req) { data, response, error in
if let data = data {
do{
let decoder = JSONDecoder()
decoder.dateDecodingStrategy = .formatted(formatter)
users = try decoder.decode(Array<User>.self, from: data)
} catch{
print(error)
}
} else if let error = error {
print("HTTP Request Failed \(error)")
}
if let response = response as? HTTPURLResponse {
print("Response HTTP Status code: \(response.statusCode)")
}
}
task.resume()
}
}
我认为这与自签名 ssl 证书有关。
不胜感激,谢谢
【问题讨论】:
标签: swift self-signed self-signed-certificate