AFNetworking 的二次封裝

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


1、新建一個LsxNetManager的工具類,繼承自NSObject;?

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

/** 對AFHTTPSessionManager的GET請求方法進行了封裝 */

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


/** 對AFHTTPSessionManager的POST請求方法進行了封裝 */

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

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

static AFHTTPSessionManager *manager = nil;

/** 單例一個AFHTTPSessionManager */


+ (AFHTTPSessionManager *)defaultManager {

static dispatch_once_t onceToken;

dispatch_once(&onceToken, ^{

manager = [AFHTTPSessionManager manager];

// 設(shè)置接受解析的內(nè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.接下來是它的使用方法

? ? (1)導入頭文件

#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ù):%@----------出錯信息:%@",responseObject,error);

}];

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

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

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