Moya进阶说明

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可以实现在网络请求前转菊花,请求完成结束转菊花,或者写日志等功能

若有收获,就点个赞吧

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 网络层这一块用Alamofire,如同于在oc中用AFNetworking.但是,如果你直接使用的话,会使得各种网...
    TommyYaphetS阅读 10,445评论 3 16
  • 什么是Moya? 对于iOS的开发人员来说,一般我们的网络请求是使用Alamofire来抽象的访问URLSessi...
    Zax_Smile阅读 7,971评论 4 20
  • 文章摘自Moya官方文档 Targets Moya的使用始于定义一个target——典型的是定义一个符合Targe...
    Jt_Self阅读 16,439评论 0 27
  • RxSwift by Examples 分成 4 部分。以下是 PART 3 的学习笔记和翻译整理。原文在这里。 ...
    su3阅读 918评论 0 0
  • Moya是对 Alamofire的进一步封装。 简化了网络请求 方便维护 方便单元测试 使用Moya,项目中网络请...
    缭雾阅读 8,080评论 7 19

友情链接更多精彩内容