Alamofire - добавить тайм-аут, если нет ответа - PullRequest
1 голос
/ 24 марта 2020

У меня JSON вызов с использованием Alamofire, он работает хорошо, за исключением случаев, когда запрос на сервере не отвечает. Если для конечной точки истекло время ожидания, Alamofire выдаст ошибку тайм-аута, но недавно конечная точка работала, но MS SQL на сервере не отвечала. В этом случае SVProgress будет просто вращаться и ждать, пока сервер вернет ответ, и не будет превышать время ожидания.

Как добавить время ожидания в приведенный ниже код, чтобы сервер не отвечал через x секунд Я получаю ошибку?

Я использую Swift 5.

SVProgressHUD.show()
let apiEndpoint: String = "https://intelipos.dynalias.net/iocserver/MobileApp.aspx?action=MobileApp"
let headers = HTTPHeaders(["Content-Type" : "application/json","WebSiteAppID":self.webSiteAppID])
var param = [String: Any?]()
param["Command"] = "GetSales"
let keychain = KeychainSwift()
let sessionID = keychain.get("adminSessionID")!.base64Decoded()!
let strParam = jsonToString(json: ["SessionID":sessionID])
param["Data"] = strParam?.base64Encoded()
param["Signature"] = strParam?.base64Encoded()?.sha256Signature()

let request =  AF.request(URL(string: apiEndpoint)!, method: .post, parameters: param as Parameters, encoding: JSONEncoding.default, headers: headers)

1 Ответ

0 голосов
/ 24 марта 2020

Вам просто нужно установить интервал ожидания вашего URL-запроса на желаемое значение.

request.timeoutInterval = 30
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...