網(wǎng)絡框架(以下稱NJAFNetworking)是基于AFNetworking框架的簡單封裝,基本功能包括POST請求,GET請求,上傳文件,下載文件,網(wǎng)絡狀態(tài),緩存等。
為什么要使用NJAFNetworking?
在使用AFNetworking的時候我們會發(fā)現(xiàn)對外開發(fā)接口比較多,當項目需求涉及到緩存,以及網(wǎng)絡判斷的時候,我們都無從下手。然NJAFNetworking框架將這些過多的開發(fā)接口封裝到一起,讓我們使用起來更為方便。
- 優(yōu)點:
- 網(wǎng)絡狀態(tài)已經(jīng)封裝,在通過GET/POST請求會回調;
- 緩存已經(jīng)封裝,當GET/POST請求失敗后會回調;
- 開發(fā)接口少,只需調用相應功能功能的接口即可。
NJAFNetworking究竟是什么?
配置公共的請求頭(可以不配置)
/**
* 配置公共的請求頭,用于區(qū)分請求來源,需要與服務器約定好
* @param httpHeaders 如@{"client" : "iOS"}
*/
+ (void)configCommonHttpHeaders:(NSDictionary *)httpHeaders;更新請求接口基礎url(如果服務器地址有多個,可以不配置)
/**
* 更新請求接口基礎url(如果服務器地址有多個)
* @param baseUrl 請求接口基礎url
*/
+ (void)updateBaseUrl:(NSString *)baseUrl;GET請求接口
/**
* GET請求接口
* @param url 訪問地址路徑,如/user/index/login
* @param refreshCache 是否刷新緩存,YES
* @param params 需要傳的參數(shù),如@{@"user_id" :@(80011)}
* @param progress 進度回調,
* @param success 接口請求響應成功回調
* @param fail 接口請求響應失敗回調
* @return NSURLSessionTask
*/
+ (NJURLSessionTask *)getWithUrl:(NSString *)url
refreshCache:(BOOL)refreshCache
params:(NSDictionary *)params
progress:(NJLoadProgress)progress
success:(NJResponseSuccess)success
fail:(NJResponseFail)fail;POST請求接口
/**
* POST請求接口
* @param url 訪問地址路徑,如/user/index/login
* @param refreshCache 是否刷新緩存,YES
* @param params 需要傳的參數(shù),如@{@"user_id" :@(80011)}
* @param progress 進度回調,
* @param success 接口請求響應成功回調
* @param fail 接口請求響應失敗回調
* @return NSURLSessionTask
*/
+ (NJURLSessionTask *)postWithUrl:(NSString *)url
refreshCache:(BOOL)refreshCache
params:(NSDictionary *)params
progress:(NJLoadProgress)progress
success:(NJResponseSuccess)success
fail:(NJResponseFail)fail;圖片上傳接口
/**
* 圖片上傳接口
* @param image 圖片對象
* @param url 上傳圖片路徑,如/user/images
* @param filename 文件名字,默認為當前時間yyyyMMddHHmmss.jpg
* @param name 約定關聯(lián)名稱,如image
* @param mimeType 默認iamge/jpeg
* @param parameters 需要傳的參數(shù),如@{@"user_id" :@(80011)}
* @param progress 上傳進度回調
* @param success 上傳成功回調
* @param fail 上傳失敗回調
* @return NSURLSessionTask
*/
+ (NJURLSessionTask *)uploadWithImage:(UIImage *)image
url:(NSString *)url
filename:(NSString *)filename
name:(NSString *)name
mimeType:(NSString *)mimeType
parameters:(NSDictionary *)parameters
progress:(NJLoadProgress)progress
success:(NJResponseSuccess)success
fail:(NJResponseFail)fail;上傳文件
/**
* 上傳文件
* @param url 上傳文件路徑,如/user/images
* @param uploadingFile 待上傳文件路徑,如/user/images
* @param progress 進度回調
* @param success 上傳成功回調
* @param fail 上傳失敗回調
* @return NSURLSessionTask
*/
+ (NJURLSessionTask *)uploadFileWithUrl:(NSString *)url
uploadingFile:(NSString *)uploadingFile
progress:(NJLoadProgress)progress
success:(NJResponseSuccess)success
fail:(NJResponseFail)fail;下載文件
/**
* 下載文件
* @param url 下載文件URL
* @param saveToPath 下載到那個路徑下
* @param progress 下載進度
* @param success 下載成功后的回調
* @param fail 下載失敗后的回調
* @return NSURLSessionTask
*/
+ (NJURLSessionTask *)downloadWithUrl:(NSString *)url
saveToPath:(NSString *)saveToPath
progress:(NJLoadProgress)progress
success:(NJResponseSuccess)success
fail:(NJResponseFail)fail;
如何使用NJAFNetworking?
-
NJAFNetworking支持CocoaPods(CocoaPods是什么?)
寫在Podfile文件中,
source 'https://github.com/CocoaPods/Specs.git'
inhibit_all_warnings!target "這里寫你的工程名字" do pod 'NJAFNetworking', '~> 1.0.1' end 下載NJAFNetworking(下載地址)
下載完后將NJAFNetworking文件夾拖入工程中即可。
結束。
你們的支持也是我前進的動力,非常感謝支持!