我们在做网络请求的时候,有很多相同的情况需要处理。
比如处理HTTP状态码,很多请求函数都需要处理遇到200、401、500...的情况,
我想把这些处理情况统一起来,每次调用Alamofire来进行网络请求的时候首先调用这个函数。
请问这种情况下怎么封装Alamofire?
我们在做网络请求的时候,有很多相同的情况需要处理。
比如处理HTTP状态码,很多请求函数都需要处理遇到200、401、500...的情况,
我想把这些处理情况统一起来,每次调用Alamofire来进行网络请求的时候首先调用这个函数。
请问这种情况下怎么封装Alamofire?
自己封装一层呀,发送和返回时套一层自已的通用处理逻辑。
比如加密,带上 app 版本号之类的,以及接收数据后的解密,错误码处理等。
个人觉得你可以参考 Moya 的做法,自己写一个类似的。我觉得这种封装形式就很好。
用 protocol 和 extension. 所有的 请求都实现 protocol, 就行了。让 protocol 的 extension 去实现公共的方法。
给你个例子:
协议文件
网络请求封装
具体的一个网络请求
执行网络请求时,只需要这样访问就OK了。这样,如果遇到同样的网络请求错误信息,可以统一处理,也可以根据需要传入回调函数,进行错误处理。完美。