<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          KJNetworkPluginManager插件版網(wǎng)絡(luò)請(qǐng)求庫

          聯(lián)合創(chuàng)作 · 2023-09-27 09:11

          KJNetworkPlugin 是一款基于面向協(xié)議的網(wǎng)絡(luò)抽象層的插件版網(wǎng)絡(luò)請(qǐng)求庫,基于AFNetworking的基礎(chǔ)上再次封裝使用。

          • 熟悉swift的朋友應(yīng)該都知道一款優(yōu)秀的三方庫Moya,插件版網(wǎng)絡(luò)請(qǐng)求是真香,于是乎借鑒思路制作一款純oc版本的插件網(wǎng)絡(luò)請(qǐng)求庫
          • 熟悉oc的朋友又應(yīng)該都知道一款優(yōu)秀的三方庫YTKNetwork,基于對(duì)象的協(xié)議版網(wǎng)絡(luò)請(qǐng)求,然后他的批量網(wǎng)絡(luò)請(qǐng)求和鏈?zhǔn)骄W(wǎng)絡(luò)請(qǐng)求也超級(jí)香
          • 結(jié)合一下兩者優(yōu)點(diǎn),制作一款批量鏈?zhǔn)?/code>插件版網(wǎng)絡(luò)請(qǐng)求庫
          • 目前整理九款插件:解析插件,緩存插件,配置自建證書插件,加載提示插件,修改請(qǐng)求插件,日志抓包插件,錯(cuò)誤碼插件,刷新插件,網(wǎng)絡(luò)錯(cuò)誤和空數(shù)據(jù)插件

          功能清單

          插件版網(wǎng)絡(luò)請(qǐng)求可以更方便快捷的定制專屬網(wǎng)絡(luò)請(qǐng)求,并且支持批量操作,鏈?zhǔn)讲僮?/p>

          主要功能清單如下:

          • 支持基本的網(wǎng)絡(luò)請(qǐng)求,下載上傳文件
          • 支持配置通用請(qǐng)求跟路徑,通用參數(shù)等
          • 支持設(shè)置加載和提示框插件
          • 支持解析結(jié)果插件
          • 支持網(wǎng)絡(luò)緩存插件
          • 支持配置自建證書插件
          • 支持修改請(qǐng)求體和獲取響應(yīng)結(jié)果插件
          • 支持網(wǎng)絡(luò)日志抓包插件
          • 支持刷新加載更多插件
          • 支持錯(cuò)誤碼解析插件
          • 支持錯(cuò)誤和空數(shù)據(jù)UI展示插件
          • 支持批量操作
          • 支持鏈?zhǔn)骄W(wǎng)絡(luò)請(qǐng)求

          使用教程

          模塊組成

          簡單講應(yīng)該分為這么幾大板塊:

          • Chain:鏈?zhǔn)讲寮婢W(wǎng)絡(luò)請(qǐng)求
          • Batch:批量插件版網(wǎng)絡(luò)請(qǐng)求
          • Network:插件管理器和網(wǎng)絡(luò)請(qǐng)求基類
          • Plugins:插件集合,目前已有5款插件供使用   - Loading:加載錯(cuò)誤提示插件   - Anslysis:數(shù)據(jù)解析插件   - Cache:緩存插件   - Certificate:自建證書插件   - Thief:修改器插件   - Capture:網(wǎng)絡(luò)日志抓包插件   - Code:錯(cuò)誤碼插件   - Refresh:刷新插件   - Empty:網(wǎng)絡(luò)錯(cuò)誤和空數(shù)據(jù)UI插件

          Network版塊

          • KJBaseNetworking:網(wǎng)絡(luò)請(qǐng)求基類,基于 AFNetworking 封裝使用
          • 這里也提供兩個(gè)入口,設(shè)置通用的根路徑和通用參數(shù),類似:userID,token等
          /// 根路徑地址
          @property (nonatomic, strong, class) NSString *baseURL;
          /// 基本參數(shù),類似:userID,token等
          @property (nonatomic, strong, class) NSDictionary *baseParameters;
          
          
          • 封裝的有基本的網(wǎng)絡(luò)請(qǐng)求,上傳下載文件等方法
          • KJNetworkingRequest:請(qǐng)求體,設(shè)置網(wǎng)絡(luò)請(qǐng)求相關(guān)參數(shù),其中包含參數(shù),請(qǐng)求方式,插件等等
          • KJNetworkingResponse:響應(yīng)請(qǐng)求結(jié)果,獲取插件之間產(chǎn)生的數(shù)據(jù)等等
          • KJNetworkingType:匯總所有枚舉和回調(diào)聲明
          • KJNetworkBasePlugin:插件基類,插件父類
          • KJNetworkPluginManager:插件管理器,中樞神經(jīng)
          /// 插件版網(wǎng)絡(luò)請(qǐng)求
          /// @param request 請(qǐng)求體
          /// @param success 成功回調(diào)
          /// @param failure 失敗回調(diào)
          + (void)HTTPPluginRequest:(KJNetworkingRequest *)request success:(KJNetworkPluginSuccess)success failure:(KJNetworkPluginFailure)failure;
          
          
          • 目前抽離出以下5條協(xié)議方法,其中大致分為開始時(shí)刻、網(wǎng)絡(luò)請(qǐng)求時(shí)刻、網(wǎng)絡(luò)成功、網(wǎng)絡(luò)失敗、最終返回
          /// 開始準(zhǔn)備網(wǎng)絡(luò)請(qǐng)求
          /// @param request 請(qǐng)求相關(guān)數(shù)據(jù)
          /// @param endRequest 是否結(jié)束下面的網(wǎng)絡(luò)請(qǐng)求
          /// @return 返回準(zhǔn)備插件處理后的數(shù)據(jù)
          - (KJNetworkingResponse *)prepareWithRequest:(KJNetworkingRequest *)request endRequest:(BOOL *)endRequest;
          
          /// 網(wǎng)絡(luò)請(qǐng)求開始時(shí)刻請(qǐng)求
          /// @param request 請(qǐng)求相關(guān)數(shù)據(jù)
          /// @param stopRequest 是否停止網(wǎng)絡(luò)請(qǐng)求
          /// @return 返回網(wǎng)絡(luò)請(qǐng)求開始時(shí)刻插件處理后的數(shù)據(jù)
          - (KJNetworkingResponse *)willSendWithRequest:(KJNetworkingRequest *)request stopRequest:(BOOL *)stopRequest;
          
          /// 成功接收數(shù)據(jù)
          /// @param request 請(qǐng)求相關(guān)數(shù)據(jù)
          /// @param againRequest 是否需要再次請(qǐng)求該網(wǎng)絡(luò)
          /// @return 返回成功插件處理后的數(shù)據(jù)
          - (KJNetworkingResponse *)succeedWithRequest:(KJNetworkingRequest *)request againRequest:(BOOL *)againRequest;
          
          /// 失敗處理
          /// @param request 請(qǐng)求相關(guān)數(shù)據(jù)
          /// @param againRequest 是否需要再次請(qǐng)求該網(wǎng)絡(luò)
          /// @return 返回失敗插件處理后的數(shù)據(jù)
          - (KJNetworkingResponse *)failureWithRequest:(KJNetworkingRequest *)request againRequest:(BOOL *)againRequest;
          
          /// 準(zhǔn)備返回給業(yè)務(wù)邏輯時(shí)刻調(diào)用
          /// @param request 請(qǐng)求相關(guān)數(shù)據(jù)
          /// @param error 錯(cuò)誤信息
          /// @return 返回最終加工之后的數(shù)據(jù)
          - (KJNetworkingResponse *)processSuccessResponseWithRequest:(KJNetworkingRequest *)request error:(NSError **)error;
          

          Plugins插件集合

          目前已有9款插件供使用:

          Chain鏈?zhǔn)讲寮W(wǎng)絡(luò)

          Batch批量插件網(wǎng)絡(luò)

          關(guān)于作者

          瀏覽 19
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  插逼视频免费看 | 亚洲va视频 | 做爱网站免费观看 | 6—12呦国产精品 | 国产一级A片免费视频 |