LXNetworking
網(wǎng)絡(luò)層封裝胡本,基于AFNetworking 3.0
Demo地址https://github.com/xinge1/LXNetworking
大家如果有什么建議或意見可以直接聯(lián)系我。
實(shí)現(xiàn)的功能
- get請(qǐng)求
- post請(qǐng)求
- 圖片上傳
- 文件下載
- 網(wǎng)絡(luò)狀況檢測(cè)
- HUD顯示(使用的MBProgressHUD蛾狗,不喜歡的可以自己去掉)
下載方法的效果圖
使用方法
/**
* 開啟網(wǎng)絡(luò)監(jiān)測(cè)
*/
+ (void)startMonitoring;
/**
* get請(qǐng)求方法,block回調(diào)
*
* @param url 請(qǐng)求連接冈闭,根路徑
* @param params 參數(shù)
* @param success 請(qǐng)求成功返回?cái)?shù)據(jù)
* @param fail 請(qǐng)求失敗
* @param showHUD 是否顯示HUD
*/
+(LXURLSessionTask *)getWithUrl:(NSString *)url
params:(NSDictionary *)params
success:(LXResponseSuccess)success
fail:(LXResponseFail)fail
showHUD:(BOOL)showHUD;
/**
* post請(qǐng)求方法,block回調(diào)
*
* @param url 請(qǐng)求連接,根路徑
* @param params 參數(shù)
* @param success 請(qǐng)求成功返回?cái)?shù)據(jù)
* @param fail 請(qǐng)求失敗
* @param showHUD 是否顯示HUD
*/
+(LXURLSessionTask *)postWithUrl:(NSString *)url
params:(NSDictionary *)params
success:(LXResponseSuccess)success
fail:(LXResponseFail)fail
showHUD:(BOOL)showHUD;
/**
* 上傳圖片方法
*
* @param image 上傳的圖片
* @param url 請(qǐng)求連接,根路徑
* @param filename 圖片的名稱(如果不傳則以當(dāng)時(shí)間命名)
* @param name 上傳圖片時(shí)填寫的圖片對(duì)應(yīng)的參數(shù)
* @param params 參數(shù)
* @param progress 上傳進(jìn)度
* @param success 請(qǐng)求成功返回?cái)?shù)據(jù)
* @param fail 請(qǐng)求失敗
* @param showHUD 是否顯示HUD
*/
+ (LXURLSessionTask *)uploadWithImage:(UIImage *)image
url:(NSString *)url
filename:(NSString *)filename
name:(NSString *)name
params:(NSDictionary *)params
progress:(LXUploadProgress)progress
success:(LXResponseSuccess)success
fail:(LXResponseFail)fail
showHUD:(BOOL)showHUD;
/**
* 下載文件方法
*
* @param url 下載地址
* @param saveToPath 文件保存的路徑,如果不傳則保存到Documents目錄下搀突,以文件本來(lái)的名字命名
* @param progressBlock 下載進(jìn)度回調(diào)
* @param success 下載完成
* @param fail 失敗
* @param showHUD 是否顯示HUD
* @return 返回請(qǐng)求任務(wù)對(duì)象,便于操作
*/
+ (LXURLSessionTask *)downloadWithUrl:(NSString *)url
saveToPath:(NSString *)saveToPath
progress:(LXDownloadProgress )progressBlock
success:(LXResponseSuccess )success
failure:(LXResponseFail )fail
showHUD:(BOOL)showHUD;
遇到的坑
- 在AFNetworking的下載方法里面需要return一個(gè)url路徑熊泵,如果把路徑直接用
[NSURL URLWithString:saveToPath];
返回則在相應(yīng)的路徑下找不到下載的文件仰迁,所以最好使用[NSURL fileURLWithPath:saveToPath];
方法返回。
URLWithString
只是把路徑轉(zhuǎn)成NSURL
類型顽分。
fileURLWithPath
是將字符串路徑轉(zhuǎn)成文件路徑徐许。
(不知道這么解釋對(duì)不對(duì),有更好的解釋嗎)
建議
不建議在viewControl里面直接調(diào)用以上這些接口請(qǐng)求網(wǎng)絡(luò)卒蘸,建議在這個(gè)網(wǎng)絡(luò)封裝之上根據(jù)具體業(yè)務(wù)再封裝一層雌隅。這樣封裝成離散型網(wǎng)絡(luò)層架構(gòu)比較好。