国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 系統(tǒng) > iOS > 正文

IOS 使用Block二次封裝AFNetworking 3.0詳解

2019-10-21 18:48:28
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

IOS 使用Block二次封裝AFNetworking 3.0詳解

現(xiàn)在我們網(wǎng)絡(luò)請(qǐng)求大都用第三方工具—–AFNetworking;

其中,AFNetworking 3.0 是對(duì) NSURLSession 進(jìn)行的封裝,簡(jiǎn)化了很多步驟,但是在現(xiàn)實(shí)開發(fā)中,我們可以將AFNetworking再次封裝到一個(gè)類中,這樣通過傳去URL和Parameters 就可以進(jìn)行網(wǎng)絡(luò)請(qǐng)求。

具體實(shí)現(xiàn)步驟:

前期準(zhǔn)備:導(dǎo)入AFNetworking第三方框架

1、新建一個(gè)工具類,繼承自NSObject;

2、在.h 中宏定義兩個(gè)block,用來(lái)回調(diào)請(qǐng)求結(jié)果;

//宏定義成功block 回調(diào)成功后得到的信息typedef void (^HttpSuccess)(id data);//宏定義失敗block 回調(diào)失敗信息typedef void (^HttpFailure)(NSError *error);

3、使用類方法創(chuàng)建兩個(gè)GET 和 POST請(qǐng)求函數(shù);

//get請(qǐng)求+(void)getWithUrlString:(NSString *)urlString success:(HttpSuccess)success failure:(HttpFailure)failure;//post請(qǐng)求+(void)postWithUrlString:(NSString *)urlString parameters:(NSDictionary *)parameters success:(HttpSuccess)success failure:(HttpFailure)failure;

4、在.m 中#import “AFNetworking/AFNetworking.h”,并實(shí)現(xiàn).h中定義的兩個(gè)函數(shù);

//GET請(qǐng)求+(void)getWithUrlString:(NSString *)urlString success:(HttpSuccess)success failure:(HttpFailure)failure{  //創(chuàng)建請(qǐ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請(qǐng)求  [manager GET:urlString parameters:nil progress:^(NSProgress * _Nonnull downloadProgress) {    //數(shù)據(jù)請(qǐng)求的進(jìn)度  } success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {    success(responseObject);  } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {    failure(error);  }];}//POST請(qǐng)求+(void)postWithUrlString:(NSString *)urlString parameters:(NSDictionary *)parameters success:(HttpSuccess)success failure:(HttpFailure)failure{  //創(chuàng)建請(qǐ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請(qǐng)求  [manager POST:urlString parameters:parameters progress:^(NSProgress * _Nonnull uploadProgress) {    //數(shù)據(jù)請(qǐng)求的進(jìn)度  } 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);  }];

感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到IOS開發(fā)頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 濉溪县| 轮台县| 永登县| 内江市| 阳原县| 北流市| 怀集县| 武威市| 聂荣县| 江永县| 准格尔旗| 衡东县| 武陟县| 洪泽县| 民丰县| 东阳市| 永春县| 越西县| 新闻| 广德县| 伊吾县| 桐城市| 恩平市| 通辽市| 从江县| 宁都县| 吴桥县| 晋宁县| 荔浦县| 阳东县| 清河县| 霍城县| 富平县| 桦甸市| 海城市| 翼城县| 普安县| 依安县| 开远市| 宣武区| 滨州市|