如何從Alamofire response
獲取狀態碼?Swift Alamofire響應狀態代碼
在最新版本中,我可以使用validate
,但我需要檢查狀態碼是什麼。
代碼:
Alamofire.request(.GET, "http://example.com/url")
.responseJSON { response in
}
如何從Alamofire response
獲取狀態碼?Swift Alamofire響應狀態代碼
在最新版本中,我可以使用validate
,但我需要檢查狀態碼是什麼。
代碼:
Alamofire.request(.GET, "http://example.com/url")
.responseJSON { response in
}
這工作(後@MirzaDelic指出我的錯誤):
Alamofire.request(.get, "http://www.google.com")
.responseJSON { response in
if response.response.statusCode == 404 {
// do something
} else {
// do something else
}
}
不起作用,但這個工程:'response.response.statusCode' –
好的。我很抱歉。 – damianesteban
在Alamofire 4.0 swift3分支,正是我需要:
Alamofire.request(request, withMethod: .get, parameters: parameters, encoding: .url, headers: nil)
.validate()
.responseJSON { response in
switch response.result {
case .success:
let statusCode = (response.response?.statusCode)!
print("...HTTP code: \(statusCode)")
}
}
雖然上述方法將起作用,有一種更有效的方式來做到這一點。 response.response.statusCode
返回一個很大數量的狀態碼。 Alamofire包含兩個對這種情況有用的功能,isSuccess
和isFailure
。
Alamofire.request(.get, "http://example.com/url").responseJSON { response in
let responseErrorCode = response.response!.statusCode
if response.result.isSuccess {
print("Successful HTTP code: \(responseErrorCode)")
// Run code if request is successful
} else if response.result.isFailure {
print("Failure HTTP code: \(responseErrorCode)")
// Run code if request isn't successful
}
}
通過使用上面的代碼,您可以很容易地知道HTTP代碼是好還是壞。
http://stackoverflow.com/a/33192390/3405387 – Lukas
嘗試'response.response.statusCode'。 – Adam
這工作,它看起來不好,但它的工作:) –