AFNetworking 的二次封裝

網(wǎng)上針對(duì)af的封裝也有好多了,其實(shí)封裝主要是為了我們能夠更好的復(fù)用,減少不必要的代碼量!更多的好處就不多說(shuō)了,話(huà)不多說(shuō)直接上代碼。


1、新建一個(gè)LsxNetManager的工具類(lèi),繼承自NSObject;?

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

/** 對(duì)AFHTTPSessionManager的GET請(qǐng)求方法進(jìn)行了封裝 */

+ (id)GET:(NSString *)path parameters:(NSDictionary *)params complationHandle:(void(^)(id responseObject, NSError *error))completed;


/** 對(duì)AFHTTPSessionManager的POST請(qǐng)求方法進(jìn)行了封裝 */

+ (id)POST:(NSString *)path parameters:(NSDictionary *)params complationHandle:(void(^)(id responseObject, NSError *error))completed;

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

static AFHTTPSessionManager *manager = nil;

/** 單例一個(gè)AFHTTPSessionManager */


+ (AFHTTPSessionManager *)defaultManager {

static dispatch_once_t onceToken;

dispatch_once(&onceToken, ^{

manager = [AFHTTPSessionManager manager];

// 設(shè)置接受解析的內(nèi)容類(lèi)型

manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"text/html",@"text/json",@"text/plain",@"text/javascript",@"application/json", nil];

});

? ?return manager;

}


+ (id)GET:(NSString *)path parameters:(NSDictionary *)params complationHandle:(void (^)(id, NSError *))completed {

NSLog(@"Request Path: %@, params %@", path, params);

return [[self defaultManager] GET:path parameters:params success:^(NSURLSessionDataTask * _Nonnull task, id? _Nonnull responseObject) {

completed(responseObject,nil);

} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {

[SVProgressHUD dismiss];

NSLog(@"GET ERROR: %@",error.userInfo);

}];

}


+ (id)POST:(NSString *)path parameters:(NSDictionary *)params complationHandle:(void (^)(id, NSError *))completed {

return [[self defaultManager] POST:path parameters:params success:^(NSURLSessionDataTask * _Nonnull task, id? _Nonnull responseObject) {

completed(responseObject,nil);

} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {

[SVProgressHUD dismiss];

NSLog(@"POST ERROR: %@",error.userInfo);

}];

}

4.接下來(lái)是它的使用方法

? ? (1)導(dǎo)入頭文件

#import "LsxNetManager.h"

? ? (2)直接調(diào)用

?[BaseNetManager POST:[NSString stringWithFormat:@"%s/appa/company/collectUserList",URLL] ? ? ? ? ? parameters:params? complationHandle:^(id responseObject, NSError *error){

? ? NSLog(@"服務(wù)器返回的數(shù)據(jù):%@----------出錯(cuò)信息:%@",responseObject,error);

}];

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容