iOS 前端記錄api訪問異常 并回傳服務(wù)器

? ? 很多時候蛀缝,用戶會反饋網(wǎng)絡(luò)訪問異常。但那時候其實服務(wù)器訪問都正常嗤练,并沒有看到什么異常報錯俘闯。故無法排查這些異常問題忽冻。還有很多時候,很多用戶的這些異常無法及時的反饋給運營遮婶,導(dǎo)致,可能流失了很多用戶蹦骑。所以運營要求前端可以捕捉到用戶的訪問異常報錯臀防,整合成數(shù)據(jù)供他們分析。

? ?我們的項目捎废,網(wǎng)絡(luò)訪問用的AFNetworking的框架致燥。于是想到,可以在訪問error時辐益,前端記錄這些訪問異常的接口url,參數(shù)脱吱,報錯時間,報錯內(nèi)容以及狀態(tài)碼女仰。用來統(tǒng)計具體錯誤的相關(guān)詳細信息抡锈。等到用戶的app跟服務(wù)器的網(wǎng)絡(luò)訪問正常時,再將這些錯誤信息一并傳給服務(wù)器一罩。

[managerPOST:urlStrparameters:paramssuccess:^(NSURLSessionDataTask*_Nonnulltask,id_NonnullresponseObject) {

success(responseObject);

}failure:^(NSURLSessionDataTask*_Nullabletask,NSError*_Nonnullerror) {

//再異常報錯回包的地方撇簿,去保存相關(guān)數(shù)據(jù)

[selfsaveError:errorwithUrl:urlStr];

[[manageroperationQueue]cancelAllOperations];

failure(error);

}];

2.+(void)saveError:(NSError*)error

withUrl:(NSString*)url{

NSDate*date = [NSDatedate];

NSTimeZone*zone = [NSTime ZonesystemTimeZone];

NSIntegerinterval = [zone secondsFromGMTForDate: date];

NSDate*localeDate = [date dateByAddingTimeInterval: interval];

NSString* time=[[SliderViewControllersharedSliderController].formatterstringFromDate:localeDate];

NSMutableArray*array=[NSMutableArrayarrayWithArray:[YcfViewgetNSUserDefaultsObject:ERROR_CONNECT_MESSAGE]];

//將報錯數(shù)據(jù)拼接好四瘫,插入保存進沙盒

NSDictionary* dic=[NSDictionarydictionaryWithObjectsAndKeys:time,@"errorTime",url,@"errorUrl",[NSStringstringWithFormat:@"%ld",(long)error.code],@"errorCode",[StaticgetCurrentNetWorkStatus],@"currentNetwork",[error.userInfoobjectForKey:@"NSLocalizedDescription"] ,@"errorDescrib",nil];

[arrayaddObject:dic];

[YcfView setErrorMessage:arrayTag:ERROR_CONNECT_MESSAGE];

}

數(shù)據(jù)記錄好后找蜜,接下來就是傳給服務(wù)器的時機選擇了。因為很多時間,客戶端與服務(wù)器的連接異常彰居,但是很有可能是客戶端本身是斷網(wǎng)情況,這個時候回傳服務(wù)器撰筷,也必將失敗的陈惰。但是如果用戶正在使用app時,將數(shù)據(jù)回傳毕籽,會影響正常的數(shù)據(jù)訪問抬闯。所以,將時機放在用戶將app退到后臺時关筒,嘗試將數(shù)據(jù)打包發(fā)給服務(wù)器画髓,如果發(fā)送成功,即清空沙盒里的錯誤數(shù)據(jù)平委。如果發(fā)送失敗奈虾,則繼續(xù)將失敗信息保存記錄。等待下一次退到后臺時廉赔,繼續(xù)嘗試發(fā)送。

-(void)sendErrorToServer{

NSDictionary* userDic=(NSDictionary*)[YcfViewgetNSUserDefaultsObject:USERDATA];

NSString*userID = [userDicobjectForKey:@"userId"];

NSString* userName=[userDicobjectForKey:@"uNickname"];

if([userIDintValue]==0) {

userID=@"10";

userName=@"未注冊用戶";

}

if(![[userDicallKeys]containsObject:@"uNickname"]) {

userID=@"10";

userName=@"未注冊用戶";

}

NSArray*array=(NSArray*)[YcfViewgetNSUserDefaultsObject:ERROR_CONNECT_MESSAGE] ;

if([arraycount]==0) {

return;

}

NSMutableDictionary* dic=[[NSMutableDictionaryalloc]init];

[dicsetObject:userNameforKey:@"userName"];

[dicsetObject:userIDforKey:@"userId"];

[dicsetObject:arrayforKey:@"errorList"];

[HttpToolspost4WithPath:SEND_ERROR_URLparams:dicsuccess:^(idJSON) {

if([HttpRequestDicisOkStatus:JSON]) {

[YcfView removeErrorList:ERROR_CONNECT_MESSAGE];

}else{

}

}failue:^(idError) {

}];

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蜡塌,一起剝皮案震驚了整個濱河市碉纳,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌馏艾,老刑警劉巖劳曹,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異琅摩,居然都是意外死亡铁孵,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進店門房资,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蜕劝,“玉大人,你說我怎么就攤上這事轰异♂妫” “怎么了?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵搭独,是天一觀的道長婴削。 經(jīng)常有香客問我,道長牙肝,這世上最難降的妖魔是什么唉俗? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任嗤朴,我火速辦了婚禮,結(jié)果婚禮上互躬,老公的妹妹穿的比我還像新娘。我一直安慰自己颂郎,他們只是感情好吼渡,可當(dāng)我...
    茶點故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著乓序,像睡著了一般寺酪。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上替劈,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天寄雀,我揣著相機與錄音,去河邊找鬼陨献。 笑死盒犹,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的眨业。 我是一名探鬼主播急膀,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼龄捡!你這毒婦竟也來了卓嫂?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤聘殖,失蹤者是張志新(化名)和其女友劉穎晨雳,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體奸腺,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡餐禁,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了突照。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片坠宴。...
    茶點故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖绷旗,靈堂內(nèi)的尸體忽然破棺而出喜鼓,到底是詐尸還是另有隱情,我是刑警寧澤衔肢,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布庄岖,位于F島的核電站,受9級特大地震影響角骤,放射性物質(zhì)發(fā)生泄漏隅忿。R本人自食惡果不足惜心剥,卻給世界環(huán)境...
    茶點故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望背桐。 院中可真熱鬧优烧,春花似錦、人聲如沸链峭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽弊仪。三九已至熙卡,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間励饵,已是汗流浹背驳癌。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留役听,地道東北人颓鲜。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像典予,于是被迫代替她去往敵國和親灾杰。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,762評論 2 345

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理熙参,服務(wù)發(fā)現(xiàn)艳吠,斷路器,智...
    卡卡羅2017閱讀 134,599評論 18 139
  • iOS開發(fā)系列--網(wǎng)絡(luò)開發(fā) 概覽 大部分應(yīng)用程序都或多或少會牽扯到網(wǎng)絡(luò)開發(fā)孽椰,例如說新浪微博昭娩、微信等,這些應(yīng)用本身可...
    lichengjin閱讀 3,639評論 2 7
  • 一:LoadRunner常見問題整理1.LR 腳本為空的解決方法:1.去掉ie設(shè)置中的第三方支持取消掉2.在系統(tǒng)屬...
    0100閱讀 4,074評論 0 11
  • 國家電網(wǎng)公司企業(yè)標(biāo)準(zhǔn)(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報批稿:20170802 前言: 排版 ...
    庭說閱讀 10,869評論 6 13
  • 0531 晚安句 赤司征十郎— 「僕に逆らう奴は親でも許さない」 「頭が高いぞ」 「全てに勝つ僕は全て正しい」 「...
    萌囧囧閱讀 153評論 1 0