Moya進(jìn)階說明

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

MoyaProvider

初始化moyaProvider時,我們可以看到初始化方法中有很多可選參數(shù)


image.png

接下來對每個參數(shù)做出解釋和常用用法舉例

endpointClosure

在這個closure存放了一些moya進(jìn)行網(wǎng)絡(luò)請求前的一些數(shù)據(jù)


image.png

requestClosure

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

moya請求的實(shí)質(zhì):target—>endpoint—>NSRequest


image.png

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)有用


image.png

image.png

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


image.png

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ù)。


image.png

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

若有收獲,就點(diǎn)個贊吧

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 網(wǎng)絡(luò)層這一塊用Alamofire,如同于在oc中用AFNetworking.但是,如果你直接使用的話,會使得各種網(wǎng)...
    TommyYaphetS閱讀 10,444評論 3 16
  • 什么是Moya? 對于iOS的開發(fā)人員來說,一般我們的網(wǎng)絡(luò)請求是使用Alamofire來抽象的訪問URLSessi...
    Zax_Smile閱讀 7,969評論 4 20
  • 文章摘自Moya官方文檔 Targets Moya的使用始于定義一個target——典型的是定義一個符合Targe...
    Jt_Self閱讀 16,430評論 0 27
  • RxSwift by Examples 分成 4 部分。以下是 PART 3 的學(xué)習(xí)筆記和翻譯整理。原文在這里。 ...
    su3閱讀 917評論 0 0
  • Moya是對 Alamofire的進(jìn)一步封裝。 簡化了網(wǎng)絡(luò)請求 方便維護(hù) 方便單元測試 使用Moya,項(xiàng)目中網(wǎng)絡(luò)請...
    繚霧閱讀 8,078評論 7 19

友情鏈接更多精彩內(nèi)容