Это мой код для извлечения данных из службы REST-JSON из https://somedomain:8444/someservice сертификата ssl самоподписанного (ненадежного), что я хочу, чтобы избежать этой безопасности только для тестирования службы:
func consumirServicioRESTFront(URLstring : String , POSTcontent : [String: Any] ) -> Data{
print("Llamando WS: " + URLstring)
let jsonData = try? JSONSerialization.data(withJSONObject: POSTcontent)
// create post request
let url = URL(string: URLstring)!
var request = URLRequest(url: url)
request.httpMethod = "POST"
// insert json data to the request
request.httpBody = jsonData
var myData : Data = "".data(using: .utf8)!
let configuration = URLSessionConfiguration.default
let session = URLSession(configuration: configuration, delegate: self , delegateQueue:OperationQueue.main)
let bk = session.dataTask(with: request, completionHandler: {data, response, error -> Void in
guard let data = data, error == nil else {
print("error tracking 1")
print(error?.localizedDescription ?? "No data")
return
}
myData = data
let responseJSON = try? JSONSerialization.jsonObject(with: data, options: [])
if let responseJSON = responseJSON as? [String: Any] {
print(responseJSON)
}
})
bk.resume()
let task = session.dataTask(with: request) { data, response, error in
guard let data = data, error == nil else {
print("error tracking")
print(error?.localizedDescription ?? "No data")
return
}
myData = data
let responseJSON = try? JSONSerialization.jsonObject(with: data, options: [])
if let responseJSON = responseJSON as? [String: Any] {
print(responseJSON)
}
}
task.resume()
return myData
}
func urlSession(session: URLSession, didReceive challenge: URLAuthenticationChallenge, completionHandler: @escaping (URLSession.AuthChallengeDisposition, URLCredential?) -> Void) {
print("try bypass")
completionHandler(URLSession.AuthChallengeDisposition.useCredential, URLCredential(trust: challenge.protectionSpace.serverTrust!))
}
Как вы можете заметить, у меня есть два вызова, ни один из которых не работает, мне интересно, работает ли код делегата, потому что я получаю это в журналах:
отслеживание ошибок 1 Сертификат для этого сервера недействителен.Возможно, вы подключаетесь к серверу, который притворяется «www.XXXXXXXXXXXX.com», что может поставить под угрозу вашу конфиденциальную информацию.Отслеживание ошибок 1 Сертификат для этого сервера недействителен.Возможно, вы подключаетесь к серверу, который притворяется «www.XXXXXXX.com», что может поставить под угрозу вашу конфиденциальную информацию.2019-01-18 12: 42: 00.056623-0500 EjemploSDK [450: 51528] Ошибка доверия TIC SSL [3: 0x280254240]: 3: 0 2019-01-18 12: 42: 00.057090-0500 EjemploSDK [450: 51528] NSURLSessionОшибка загрузки HTTP / NSURLConnection (kCFStreamErrorDomainSSL, -9807) 2019-01-18 12: 42: 00.057135-0500 EjemploSDK [450: 51528] Задача. <2> Ошибка загрузки HTTP (код ошибки: -1202 [3: -9807])2019-01-18 12: 42: 00.057223-0500 EjemploSDK [450: 51531] Задача. <2> завершена с ошибкой - код: -1202 отслеживание ошибок Сертификат для этого сервера недействителен.Возможно, вы подключаетесь к серверу, который притворяется «serviciosdeptest.pichincha.com», что может поставить под угрозу вашу конфиденциальную информацию.2019-01-18 12: 42: 00.058602-0500 EjemploSDK [450: 51528] Ошибка доверия TIC SSL [4: 0x2802446c0]: 3: 0 2019-01-18 12: 42: 00.059001-0500 EjemploSDK [450: 51528] NSURLSession/ NSURLConnection Не удалось загрузить HTTP (kCFStreamErrorDomainSSL, -9807) 2019-01-18 12: 42: 00.059033-0500 EjemploSDK [450: 51528] Задача. <2> Ошибка загрузки HTTP (код ошибки: -1202 [3: -9807])2019-01-18 12: 42: 00.059104-0500 EjemploSDK [450: 51531] Задание. <2> завершено с ошибкой - код: -1202 отслеживание ошибок Сертификат для этого сервера недействителен.Возможно, вы подключаетесь к серверу, который притворяется «www.XXXXX.com», что может поставить под угрозу вашу конфиденциальную информацию.
Я использую XCODE 10 и swift 4.2, IOS 12.0