2016-10-05 3 views
1

REST API에서 데이터를 가져 오는 데 Alamofire를 사용합니다.스위프트 Alamofire 대기 대기 시간 초과 확인 및 오류 넣기

   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입니다,하지만 난 Alamofire 3.0 를 사용 3.0 : Alamofire.Manager.sharedInstance.session.configuration.timeoutIntervalForRequest = 300 코드를 입력해야하는 곳을 알려주시겠습니까? 이 함수를 수행하기 위해 timeout을 3 초 이상으로하고 싶습니다. show_error() – Dim

+0

시간 초과는 반드시 오류를 통해 발생합니다. 그래서 당신은 다른 오류와 마찬가지로 하나처럼 처리합니다. – ezcoding

+0

어디에서이 코드를 추가해야합니까? 나는 viewDidLoad에 추가하고 그것은 나를 위해 작동하지 않습니다. – Dim