一、簡介
DGAFNetWorking是我基于AFNetworking和YYCache封裝的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基于AFNetworking和YYCache完成。感謝他們對開源社區(qū)做出的貢獻。