我使用Alamofire從我的服務器上獲取數據。但是,它不捕獲錯誤,因爲返回的錯誤是nil
。我已經使用AFNetworking進行測試,並且工作正常。對於這兩種操作,返回的狀態代碼是401 Unauthorized
。是否有我的代碼的東西?Alamofire不趕錯誤
我使用GrapeAPI我的後端。它所做的只是對失敗的請求返回錯誤
GrapeAPI
error!('Unauthorized', 401)
AFNetworking
manager.GET("someUrl", parameters: nil, success: { (_, object) in
}, failure: { (operation, error) in
// These are the outputs. I'm not assigning any values
// error.localizedDescription = "Request failed: unauthorized (401)"
// statusCode = 401
})
Alamofire
Alamofire.request(.GET, "url", parameters: nil)
.response { (a,b,data,error) in
// These are the outputs. I'm not assigning any values
// error = nil
// data = {"error":"Unauthorized"}
// statusCode = 401
}
我可以使用statusCode檢查失敗。但我更喜歡檢查錯誤對象。然而,由於錯誤是在Alamofire nil
,這是相當混亂,以檢查該請求是否已出現故障。
您需要顯式調用'.validate()'您的來電'.response前()' – mattt
@mattt工程。爲什麼Alamofire被設計爲默認行爲,並且AFNetworking不是? – Azuan
是的,在這種情況下顯式選擇更好。 – mattt