Alamofire具有一个漂亮的.responseDecodable
函数,该函数使request.result = .success
时的解析变得简单,但是在failure
的情况下如何解码错误对象呢?
就我而言,后端可能返回无数错误,因为例如信用卡收费可能具有无限的原因-OTP失败,被拒绝等。
我应该改变处理请求的方式吗?由于Alamofire并不真正支持错误处理(至少使用responseDecodable
)。
答案 0 :(得分:1)
这完全取决于您的回复的结构。有几种方法可以解决此问题:
enum
来代表您的响应,通常与成功(或失败)值有关。类似APIResponse<Success>
之类的东西,本身就是Decodable
,将尝试解析成功值或响应中的错误。这样一来,您就可以继续使用responseDecodable
,但是您必须使用Alamofire自己产生的请求错误来纠正响应错误。ResponseSerializer
,知道如何解码成功和失败的值,您可以将其插入Alamofire的response
方法。DataRequest
方法扩展response
。