封裝AFN3.x提供根據(jù)時間和版本緩存功能

一、簡介

DGAFNetWorking是我基于AFNetworkingYYCache封裝的iOS網(wǎng)絡庫.除一般網(wǎng)絡請求功能外支持按時間緩存網(wǎng)絡請求內(nèi)容和支持按版本號緩存網(wǎng)絡請求內(nèi)容。github地址

二、使用

1、網(wǎng)絡狀態(tài)

開始監(jiān)聽網(wǎng)絡 在appdelegate里添加方法:

[DGAFNetWorking startMonitoring];

然后監(jiān)聽這個key可以收到網(wǎng)絡狀態(tài)改變的通知

DG_NOTI_NETWORK_CHANGE

也可以調(diào)用提供的接口獲取當前的網(wǎng)絡狀態(tài)

/**
 *  當前有沒有網(wǎng)絡
 *
 *  @return 是否有網(wǎng)
 */
+ (BOOL)isConnectionAvailable;
/**
 *  當前的網(wǎng)絡狀態(tài)
 *
 *  @return 狀態(tài)的描述
 */
+  (DGNetworkStatus)curentNetworkStatus;
2、緩存功能

自動緩存的GET請求和POST請求。responseCache是緩存的內(nèi)容(是先返回緩存內(nèi)容,然后再請求網(wǎng)絡返回網(wǎng)絡返回的數(shù)據(jù),請求成功后自動更新緩存內(nèi)容)

+ (NSURLSessionTask *)GET:(NSString *)URL
               parameters:(NSDictionary *)parameters
                 cacheKey:(NSString*)cacheKey
          isResponseCache:(BOOL)isResponseCache
            responseCache:(void (^)(id cacheObject))responseCache
                  success:(void (^)(id responseObject))success
                  failure:(void (^)(id error))failure;

+ (NSURLSessionTask *)POST:(NSString *)URL
                         parameters:(NSDictionary *)parameters
                           cacheKey:(NSString*)cacheKey
                    isResponseCache:(BOOL)isResponseCache
                      responseCache:(void (^)(id cacheObject))responseCache
                            success:(void (^)(id responseObject))success
                            failure:(void (^)(id error))failure;
3、按時間和版本緩存功能

項目里會有一些需求,比如服務器數(shù)據(jù)版本變化才需要請求網(wǎng)絡,或者某個接口更新的不是很頻繁,在某個時間內(nèi)請求可以直接返回本地緩存的內(nèi)容,比如個人信息。這個時候就可以用到下面的方法。
version 是當前的版本 如果版本和緩存的版本不是一個的話則進行網(wǎng)絡請求,否則返回本地緩存的內(nèi)容
durtion 是緩存的時間,單位是秒。如果請求和上次請求的時間差少于這個時間就返回緩存的內(nèi)容,否則請求網(wǎng)絡

+ (void)GET:(NSString *)URL
                  parameters:(NSDictionary *)parameters
                versionCache:(NSString*)version
                durtionCache:(NSInteger)durtion
                     success:(void (^)(id responseObject))success
                     failure:(void (^)(id error))failure;

+ (void)POST:(NSString *)URL
                      parameters:(NSDictionary *)parameters
                    versionCache:(NSString*)version
                    durtionCache:(NSInteger)durtion
                         success:(void (^)(id responseObject))success
                         failure:(void (^)(id error))failure;
4、一般網(wǎng)絡請求

對于一般的網(wǎng)絡請求比如不緩存數(shù)據(jù)的GET、不緩存數(shù)據(jù)的POST、圖片上傳、數(shù)據(jù)下載等功能,項目僅對AfNetwoking進行了簡單的二次封裝在DGAFNetWorking頭文件里寫的很清楚,這里不多做介紹。數(shù)據(jù)下載目錄定在/Library/Caches/download/文件夾。可以在DGFileHandleFactory類里面修改。

三、項目類介紹

項目里共有4個類

1、DGAFNetWorking

這個類是封裝了AfNetwoking的請求方法,所有的網(wǎng)絡請求都要通過這個類來操作。

2、DGNetworkCache

這個類調(diào)用YYCache.處理緩存的添加和緩存的獲取

3、DGCacheConfig

這個類處理按時間緩存和按版本緩存的緩存配置,如果想添加新的緩存方式,可以再這個類里添加一個key.

4、DGFileHandleFactory

這個類處理一些數(shù)據(jù)存儲的地址,如緩存配置文件的地址、網(wǎng)絡下載數(shù)據(jù)的地址等。

四、鳴謝

DGAFNetWorking基于AFNetworkingYYCache完成。感謝他們對開源社區(qū)做出的貢獻。

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

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

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,319評論 25 708
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,626評論 4 61
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,688評論 19 139
  • 熟悉我的朋友知道我喝酒,而且只喝啤酒,啤酒最愛青啤,所以每逢相聚,便先給我放下青啤。前幾天下午,老朋友相約,下了班...
    吳jc_5d7e閱讀 418評論 0 1
  • 隨著龍年的到來,每個人在寧靜之中走入了新的一年,年歲的交替如此漫長卻也又如此短暫。無聲的夜幕中人們都沉浸在夢想之中...
    糕點吃音樂閱讀 288評論 0 0

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