這篇文章主要為大家展示了“IOS如何使用Block二次封裝AFNetworking3.0”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“IOS如何使用Block二次封裝AFNetworking3.0”這篇文章吧。
成都創(chuàng)新互聯(lián)公司制作網(wǎng)站網(wǎng)頁找三站合一網(wǎng)站制作公司,專注于網(wǎng)頁設(shè)計,成都做網(wǎng)站、成都網(wǎng)站設(shè)計,網(wǎng)站設(shè)計,企業(yè)網(wǎng)站搭建,網(wǎng)站開發(fā),建網(wǎng)站業(yè)務(wù),680元做網(wǎng)站,已為成百上千服務(wù),成都創(chuàng)新互聯(lián)公司網(wǎng)站建設(shè)將一如既往的為我們的客戶提供最優(yōu)質(zhì)的網(wǎng)站建設(shè)、網(wǎng)絡(luò)營銷推廣服務(wù)!IOS 使用Block二次封裝AFNetworking 3.0詳解
現(xiàn)在我們網(wǎng)絡(luò)請求大都用第三方工具—–AFNetworking;
其中,AFNetworking 3.0 是對 NSURLSession 進行的封裝,簡化了很多步驟,但是在現(xiàn)實開發(fā)中,我們可以將AFNetworking再次封裝到一個類中,這樣通過傳去URL和Parameters 就可以進行網(wǎng)絡(luò)請求。
具體實現(xiàn)步驟:
前期準(zhǔn)備:導(dǎo)入AFNetworking第三方框架
1、新建一個工具類,繼承自NSObject;
2、在.h 中宏定義兩個block,用來回調(diào)請求結(jié)果;
//宏定義成功block 回調(diào)成功后得到的信息 typedef void (^HttpSuccess)(id data); //宏定義失敗block 回調(diào)失敗信息 typedef void (^HttpFailure)(NSError *error);
3、使用類方法創(chuàng)建兩個GET 和 POST請求函數(shù);
//get請求 +(void)getWithUrlString:(NSString *)urlString success:(HttpSuccess)success failure:(HttpFailure)failure; //post請求 +(void)postWithUrlString:(NSString *)urlString parameters:(NSDictionary *)parameters success:(HttpSuccess)success failure:(HttpFailure)failure;
4、在.m 中#import “AFNetworking/AFNetworking.h”,并實現(xiàn).h中定義的兩個函數(shù);
//GET請求 +(void)getWithUrlString:(NSString *)urlString success:(HttpSuccess)success failure:(HttpFailure)failure{ //創(chuàng)建請求管理者 AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; manager.responseSerializer = [AFHTTPResponseSerializer serializer]; //內(nèi)容類型 manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json",@"text/json",@"text/javascript",@"text/html", nil]; //get請求 [manager GET:urlString parameters:nil progress:^(NSProgress * _Nonnull downloadProgress) { //數(shù)據(jù)請求的進度 } success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) { success(responseObject); } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) { failure(error); }]; } //POST請求 +(void)postWithUrlString:(NSString *)urlString parameters:(NSDictionary *)parameters success:(HttpSuccess)success failure:(HttpFailure)failure{ //創(chuàng)建請求管理者 AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; // manager.responseSerializer = [AFHTTPResponseSerializer serializer]; //內(nèi)容類型 manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json",@"text/json",@"text/javascript",@"text/html", nil]; //post請求 [manager POST:urlString parameters:parameters progress:^(NSProgress * _Nonnull uploadProgress) { //數(shù)據(jù)請求的進度 } success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) { success(responseObject); } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) { failure(error); }]; }
使用步驟:
1、導(dǎo)入自定義的工具類名;
2、調(diào)用自定義的方法;
[XMAFNRequestTools getWithUrlString:url success:^(id data) { self.array = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments | NSJSONReadingMutableLeaves error:nil]; NSLog(@"%@",self.array); } failure:^(NSError *error) { NSLog(@"%@",error); }];
以上是“IOS如何使用Block二次封裝AFNetworking3.0”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司行業(yè)資訊頻道!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站www.cdcxhl.com,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。