2016-01-15 55 views
3

爲Alamofire一個例子給出如下:Alamofire:如何處理和分類錯誤?

Alamofire.request(.GET, "https://httpbin.org/get", parameters: ["foo": "bar"]) 
    .validate() 
    .responseJSON { response in 
     switch response.result { 
     case .Success: 
      print("Validation Successful") 
     case .Failure(let error): 
      print(error) 
     } 
    } 

我該如何處理像「在下來的網絡」的錯誤,「404」,「服務器找不到」,給信息的藉口給用戶爲什麼他們的東西沒有加載?

+0

雅我怎麼能確定發生了什麼故障?真是太可怕了! –

回答

2

你可以得到HTTP狀態代碼和Handler像這樣:

Alamofire.request(.GET, USERS_URL, headers: headers, encoding: .JSON) 
     .responseJSON { response in 
      debugPrint(response) 
      switch response.result { 
      case .Success(let data): 
       if response.response!.statusCode == 200 { 
        //do things 
       }else if response.response!.statusCode == 401 { 
        //do things 
       } 
      case .Failure(let error): 
       print("Request failed with error: \(error)") 
      } 
    } 
+1

是否存在'.Failure'情況的文檔?它是否包括網絡關閉/服務器不可達錯誤? –

+0

。成功是在成功請求的情況下。失敗意味着無法做出請求! http狀態來自服務器的響應 – aline

+0

Ya如何確定發生了什麼故障?真是太可怕了! –