Я не могу использовать SSL Rest -JSON Service на Swift 4.2 - PullRequest
0 голосов
/ 18 января 2019

Это мой код для извлечения данных из службы 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

enter image description here

...