iOS基础篇

Moya进阶说明

2022-03-10  本文已影响0人  柠檬君Air

Moya作为Swift中很受欢迎的一款网络框架,它的基础使用方法在网上可以找到很多教程,这里就不再赘述,今天主要想要记录下moya中的一些容易被忽略却又很好用的用法。

MoyaProvider

初始化moyaProvider时,我们可以看到初始化方法中有很多可选参数


image.png

接下来对每个参数做出解释和常用用法举例

endpointClosure

在这个closure存放了一些moya进行网络请求前的一些数据


image.png

requestClosure

可以从endpoint中拿到request请求进行修改
这个闭包是moya提供给我们对网络请求开始前最后一次机会对请求进行修改,比如设置超时时间(默认是60s),禁用cookie等

moya请求的实质:target—>endpoint—>NSRequest


image.png

stubClosure

moya提供该闭包可以方便的提供测试。
如果设置了stubClosure,则moya会在成功或失败的回调中返回sampleData中的数据,例如当我传了stubClosure为MoyaProvider.delayedStub(1),那么当我调用登陆接口后,就会延迟1s返回sampleData中的数据,这在单元测试中相当有用


image.png
image.png

Moya提供了如下三种策略,用于模拟网络请求


image.png

manager

moya并不是网络请求库,它只提供网络请求的桥接,通过manager来设置网络请求库,默认使用的是alamofire。通过该参数可以方便的替换网络请求库

plugins

可以通过设置插件的方式为网络请求设置一些额外的功能,防止很多功能杂糅在一起,不方便维护。


image.png

实现pluginType可以实现在网络请求前转菊花,请求完成结束转菊花,或者写日志等功能

若有收获,就点个赞吧

上一篇下一篇

猜你喜欢

热点阅读