【发布时间】:2018-07-09 00:55:42
【问题描述】:
我想在我的 Alamofire 请求的失败部分中捕获一些状态响应。
以下代码:
let URL = "https://api.foo.bar"
Alamofire.request(URL, method: .post, parameters: parameters).responseObject { (response: DataResponse<UserResponse>) in
switch response.result {
case .success:
// Yea, it worked.
case .failure(let error):
print(error)
}
if let httpStatusCode = response.response?.statusCode {
switch(httpStatusCode) {
case 418:
let alert = UIAlertController(title: "Whoops", message: "I't s a Teapot.", preferredStyle: UIAlertControllerStyle.alert)
alert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.default, handler: nil))
self.present(alert, animated: true, completion: nil)
break
default:
print("DEFAULT...")
break
//
}
}
}
由于某种原因返回 500 错误,但这不是来自 API,而是来自代码本身,但它是从哪里引起的呢?我不知道如何正确获取 Status code 响应。
【问题讨论】:
-
你尝试过error.errorCode
-
你可以试试这个答案:- stackoverflow.com/a/47952330/6822622
-
@Sulabh "'Error' 类型的值没有成员 'statusCode'" 也没有成员 'errorCode'
-
试试
error._code,它会给你一个NSError Code。例如,当您没有连接时会发生这种情况......