對(duì)AFNetworking3.0的封裝

TTNetworkServer

對(duì)AFN的常用方法封裝,支持緩存、批量請(qǐng)求、Cookie設(shè)置、返回?cái)?shù)據(jù)自動(dòng)轉(zhuǎn)換為JSON(包括XML)、圖片壓縮上傳等...
[github]https://github.com/tengshuq/TTNetworkServer

基本用法

依賴的三方框架有AFNetworking、YYCache、MBProgressHUD,使用時(shí)請(qǐng)保證項(xiàng)目中含有這三個(gè)框架~
使用時(shí)#import "TTNetworkServer.h"

基本設(shè)置

//
TTNetworkConfig *config = [TTNetworkConfig standardConfig];
config.debugLogEnabled = YES;
config.baseURL = @"http://apicloud.mob.com";

如果需要為所有的請(qǐng)求添加公共參數(shù),比如時(shí)間戳、版本號(hào)什么的,使用:

config.commonParameters = @{@"key1":@"value1"};

Cookie的使用

如果需要使用cookie,先設(shè)置

config.cookieEnabled = YES;

然后在獲取cookie的請(qǐng)求里面調(diào)用

[TTNetworkServer getCookie:<#(NSURLSessionDataTask *)#>]

退出時(shí)清除cookie

[TTNetworkServer clearCookie]

如果需要設(shè)置本地Cookie,請(qǐng)調(diào)用

[TTNetworkServer setLocalCookieWithCookieName:(NSArray *)names values:(NSArray *)values originURL:(NSString *)url expires:(NSTimeInterval)expires]

網(wǎng)絡(luò)請(qǐng)求

基本請(qǐng)求

[TTNetworkServer GET:JointURL parameters:@{@"key":@"112fcd924b710"} cacheResponse:nil succeess:^(NSURLSessionDataTask *task, NSDictionary *responseObject) {
NSLog(@"網(wǎng)絡(luò)獲取的數(shù)據(jù) %@",responseObject);
} failure:^(NSURLSessionDataTask *task, NSError *error) {

}];

帶緩存的請(qǐng)求

[TTNetworkServer GET:JointURL parameters:@{@"key":@"112fcd924b710"} cacheResponse:^(NSDictionary *responseCache) {
NSLog(@"緩存的數(shù)據(jù)%@",responseCache);
} succeess:^(NSURLSessionDataTask *task, NSDictionary *responseObject) {
NSLog(@"網(wǎng)絡(luò)獲取的數(shù)據(jù) %@",responseObject);
} failure:^(NSURLSessionDataTask *task, NSError *error) {

}];

批量請(qǐng)求

static NSString *const ConvertJSONFail = @"https://www.baidu.com";           
static NSString *const JSON = @"https://alpha-api.app.net/stream/0/posts/stream/global";        
static NSString *const JointURL = @"car/brand/query";       
static NSString *const XML = @"http://ws.webxml.com.cn/WebServices/WeatherWS.asmx/getRegionDataset";         
TTNetworkServer *server1 = [TTNetworkServer addGET:ConvertJSONFail parameters:nil cacheResponse:nil];           
TTNetworkServer *server2 = [TTNetworkServer addGET:JSON parameters:nil cacheResponse:nil];       
TTNetworkServer *server3 = [TTNetworkServer addGET:JointURL parameters:@{@"key":@"112fcd924b710"} cacheResponse:nil];             
TTNetworkServer *server4 = [TTNetworkServer addGET:XML parameters:nil cacheResponse:nil];      
[TTNetworkServer startBatchRequest:@[server1,server2,server3,server4] cacheResponse:nil     success:^(NSArray<id> *res) {    
//返回的數(shù)據(jù)順序?yàn)榧尤胝?qǐng)求的順序     
id res0 = res[0];             
id res1 = res[1];             
id res2 = res[2];             
id res3 = res[3];            
} failure:^(NSArray<NSError *> *err) {             
} task:^(NSArray<NSURLSessionDataTask *> *task) {            
}];

取消請(qǐng)求

1.取消某個(gè)URL的請(qǐng)求:

[TTNetworkServer cancelTaskWithURL:google]

2.取消所有請(qǐng)求:

[TTNetworkServer cancelAllTask]

3.退出VC時(shí)取消VC上的所有請(qǐng)求,在VC里面調(diào)用

[self cancelAllTasksWhileViewDidDisappear:YES];

獲取和清除緩存

[TTNetworkServer allCacheSize] //獲取緩存
[TTNetworkServer clearCache]   //清除緩存
[TTNetworkServer clearCacheWithProgress:{} completion:{}]  //清除緩存回調(diào)進(jìn)度

監(jiān)聽和獲取網(wǎng)絡(luò)狀態(tài)

監(jiān)聽網(wǎng)絡(luò)狀態(tài)的變化

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(aSelector) name:TTNetworkStatusDidChangeNotification object:nil]

獲取當(dāng)前網(wǎng)絡(luò)狀態(tài)

[TTNetworkServer networkStatusType]

如有BUG,請(qǐng)聯(lián)系QQ/微信693388621~~

最后編輯于
?著作權(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)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,537評(píng)論 19 139
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,936評(píng)論 25 709
  • ContinuousDynamic---只對(duì)Discrete的剛體使用Discrete檢測(cè),對(duì)其他任何剛體或者靜態(tài)...
    kuxingseng686閱讀 730評(píng)論 0 1
  • 今天已經(jīng)是三月十二日,距離我的預(yù)產(chǎn)期已經(jīng)過了一天了,我家的暖寶今天遲到了。 我靜靜的坐在沙發(fā)上,雙手放在肚子上,能...
    大愛蓋碗茶閱讀 257評(píng)論 1 1
  • 文/洛羽 第一次踏上那殿堂 第一次遇到你們 第一次叫出兄弟 初識(shí)的尷尬陪伴欣喜 笑語(yǔ)夾著青澀。 我知道 再也離不開...
    風(fēng)洛天羽閱讀 216評(píng)論 0 0

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