我在实现基于 Alamofire
的网络时发生了奇怪的事情。所以,我的后端可以返回给我 409
,当我得到它时,我想做出正确的 react ,所以我选择了一个常规的解决方案:
Alamofire.request(someRequest).responseJSON { response in
switch response.result {
case .Success(let value):
// I get 409 here...
if response.response?.statusCode == 409 {
// ...
}
case .Failure(let error):
// While it should be here...
}
}
为什么会发生?这是某种后端问题还是什么?我只能做出一个解释:请求完成,所以即使你有
.Success
也是 409
,但是这个解释并不能说服我😅 最佳答案
HTTP 4.xx 类状态代码用于客户端似乎出错的情况,因此在正常情况下,当服务器生成错误消息时,您将向用户显示某种错误消息。
在 Alamofire 世界中,如果您希望响应在具有 Not Acceptable 状态代码时生成错误,则可以使用 .validate()
方法:
Alamofire.request(someRequest)
.validate(statusCode: 200..<300)
.responseJSON { response in
switch response.result {
case .Success(let value):
...
case .Failure(let error):
// You'll handle HTTP 409 error here...
}
}
关于ios - 409 在 Alamofire 中成功了吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38950210/