在Alamofire
调用.validate()
进行自动验证并将状态代码200...299
传递为成功。
如果API请求失败,服务器会发送状态代码400
以及JSON中的一些内部错误消息和代码,以确定哪种错误。在下面的示例中,400
下的状态代码为case .Failure
,我无法找到获取此JSON数据的方法:
Alamofire.request(.GET, "https://httpbin.org/get", parameters: ["foo": "bar"])
.validate()
.responseJSON { response in
switch response.result {
case .Success:
print("Validation Successful")
case .Failure(let error):
print(error)
}
}
error
不包含回复数据。无论如何得到它?
答案 0 :(得分:0)
如果出现错误时从服务器返回的json数据,您应该能够从响应对象中获取它,例如:
print(response.result) // result of response serialization
if let JSON = response.result.value {
print("JSON: \(JSON)")
}
您还可以继承Alamofire返回的ErrorType对象:
public enum BackendError: ErrorType {
case Network(error: NSError)
case DataSerialization(reason: String)
case JSONSerialization(error: NSError)
case ObjectSerialization(reason: String)
case XMLSerialization(error: NSError)
}
如果您不想构造要返回的自定义错误对象,这将为您提供有关错误的更多信息。更多关于Alamofire文档的内容:https://github.com/Alamofire/Alamofire#handling-errors