gpt4 book ai didi

ios - Alamofire:有没有办法在失败的情况下获取响应数据?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:58:36 24 4
gpt4 key购买 nike

Alamofire 中调用 .validate() 进行自动验证并传递状态代码 200...299 作为成功。

如果 API 请求失败,服务器会发送状态代码 400 和一些内部错误消息以及 JSON 中的代码来识别这是哪种错误。如果在以下示例中 case .Failure 下状态代码为 400,我找不到获取此 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 不包含响应数据。有办法得到吗?

最佳答案

如果有错误从服务器返回的 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

关于ios - Alamofire:有没有办法在失败的情况下获取响应数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38772821/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com