Moya作為Swift中很受歡迎的一款網(wǎng)絡(luò)框架,它的基礎(chǔ)使用方法在網(wǎng)上可以找到很多教程,這里就不再贅述,今天主要想要記錄下moya中的一些容易被忽略卻又很好用的用法。
MoyaProvider
初始化moyaProvider時,我們可以看到初始化方法中有很多可選參數(shù)

接下來對每個參數(shù)做出解釋和常用用法舉例
endpointClosure
在這個closure存放了一些moya進(jìn)行網(wǎng)絡(luò)請求前的一些數(shù)據(jù)

requestClosure
可以從endpoint中拿到request請求進(jìn)行修改
這個閉包是moya提供給我們對網(wǎng)絡(luò)請求開始前最后一次機(jī)會對請求進(jìn)行修改,比如設(shè)置超時時間(默認(rèn)是60s),禁用cookie等
moya請求的實(shí)質(zhì):target—>endpoint—>NSRequest

stubClosure
moya提供該閉包可以方便的提供測試。
如果設(shè)置了stubClosure,則moya會在成功或失敗的回調(diào)中返回sampleData中的數(shù)據(jù),例如當(dāng)我傳了stubClosure為MoyaProvider.delayedStub(1),那么當(dāng)我調(diào)用登陸接口后,就會延遲1s返回sampleData中的數(shù)據(jù),這在單元測試中相當(dāng)有用


Moya提供了如下三種策略,用于模擬網(wǎng)絡(luò)請求

manager
moya并不是網(wǎng)絡(luò)請求庫,它只提供網(wǎng)絡(luò)請求的橋接,通過manager來設(shè)置網(wǎng)絡(luò)請求庫,默認(rèn)使用的是alamofire。通過該參數(shù)可以方便的替換網(wǎng)絡(luò)請求庫
plugins
可以通過設(shè)置插件的方式為網(wǎng)絡(luò)請求設(shè)置一些額外的功能,防止很多功能雜糅在一起,不方便維護(hù)。

實(shí)現(xiàn)pluginType可以實(shí)現(xiàn)在網(wǎng)絡(luò)請求前轉(zhuǎn)菊花,請求完成結(jié)束轉(zhuǎn)菊花,或者寫日志等功能
若有收獲,就點(diǎn)個贊吧