【发布时间】:2023-03-23 13:25:01
【问题描述】:
如果出现 400(错误请求)或 403(未经授权),我只能从响应中获取有关失败的信息,而错误,传入的参数始终为零 - 是否需要任何额外设置?
Alamofire.request(Router.SignIn(emailField.text, passwordField.text)).response { (request, response, data, error) in
println(error)
println(NSString(data: data, encoding: NSUTF8StringEncoding))
}
UPD:正如马特建议的那样,添加了这样的验证:
Alamofire.request(UdacityRouter.SignIn(emailField.text, passwordField.text)).validate().response
in
println(error)
println(NSString(data: data, encoding: NSUTF8StringEncoding))
}
结果我收到了"Optional("The operation couldn’t be completed. (com.alamofire.error error -1.)")"什么远非有意义的失败解释..我想知道为什么我不能像AFNetworking那样简单地通过简单的失败解释得到错误..
【问题讨论】:
-
如果你想让HTTP状态码产生错误,你需要添加.validate()。
-
谢谢,我试试!但是默认添加这种行为不是更有用吗?
-
没有。内容类型和状态代码验证是有意选择加入 Alamofire 的。