Запрос времени ожидания при нажатии API с использованием URL-сессий - PullRequest
0 голосов
/ 05 июня 2018

Я создал функцию для доступа к методам API и использую ее весь проект.Эта функция работала идеально, но теперь, когда я использую эту функцию, максимальное время запроса занимает больше времени, и я получаю время ожидания запроса (только когда я подключен только к Wi-Fi).Я не уверен, что это бэкэнд или мой код.

// MARK: Calling Web services
class func callWebServices(url: String, methodName: String, parameters: String, showLoader: Bool, completion: @escaping CompletionHandler) {

    var url_param = url
    if showLoader {
        KVNProgress.show()
    }
    if(methodName == "GET" && parameters != "") {
        url_param = url_param + "?" + parameters
    }
    var request = URLRequest(url: URL(string: url_param)!)
    request.httpMethod = methodName

    if(methodName == "POST" && parameters != "") {
        let postString = parameters
        request.httpBody = postString.data(using: .utf8)
    }
    let task = URLSession.shared.dataTask(with: request) { (data, response, error) in
        guard let data = data, error == nil else {
            print("error = \(String(describing: error))")
            return
        }
        if let httpsStatus = response as? HTTPURLResponse, httpsStatus.statusCode != 200 {
            print("Status Code should be 200, but it is \(httpsStatus.statusCode)")
            print("response = \(String(describing: response))")
        }
        do {
            let dictData = try JSONSerialization.jsonObject(with: data, options: .mutableContainers) as! NSDictionary

            DispatchQueue.main.async {
                print("Json Result :\(dictData)")
                KVNProgress.dismiss()
                completion(dictData)
            }
        } catch {
            KVNProgress.dismiss()
            print("error is : \(error)")
        }
    }
    task.resume()
}
...