2016-10-05 5 views
1

Я использую Alamofire для получения данных от REST api.Swift Alamofire check wait timeout и поставить ошибку

   Alamofire.request(.GET, url) 
       .authenticate(user: user, password: password) 
       .responseString { response in 
        if (response.result.error != nil) 
        { 
         show_error() 
        } 
       } 
       .response { (request, response, data, error) in ... 

Я получаю и помещаю ошибку, если у пользователя нет подключения к интернету. И я хочу поставить ошибку, если пользователь будет ждать более 3 секунд ответа после запроса.

Как кошка я это делаю? Как использовать тайм-аут в Alamofire?

ответ

2
Alamofire.SessionManager.default.session.configuration.timeoutIntervalForRequest = 3000 

Это относится ко всем запросам. Если вы хотите, чтобы установить тайм-аут для одного конкретного запроса:

let sessionManager = Alamofire.SessionManager.default 
sessionManager.configuration.timeoutIntervalForRequest = 3000 
sessionManager.request(.GET, url) 
      .authenticate(user: user, password: password) 
      .responseString { response in 
       if (response.result.error != nil) 
       { 
        show_error() 
       } 
      } 
      .response { (request, response, data, error) in ... 

Вы можете найти больше о менеджерах сессии в файле README ...

+1

Это для Alamofire 4.0, но я использую 3.0 Для Alamofire 3.0: Alamofire.Manager.sharedInstance.session.configuration.timeoutIntervalForRequest = 300 Не могли бы вы рассказать мне, пожалуйста, где мне нужно ввести код? Я хочу, если таймаут более 3 секунд, чтобы выполнить эту функцию: show_error() – Dim

+0

Ну, тайм-аут наверняка пройдет через ошибку. Таким образом, вы обрабатываете его так же, как и любую другую ошибку. – ezcoding

+0

Где мне нужно добавить этот код? Я добавил в viewDidLoad, и он не работает для меня. – Dim

 Смежные вопросы

  • Нет связанных вопросов^_^