iOS中設(shè)置網(wǎng)絡(luò)超時(shí)時(shí)間+模擬的方法詳解
設(shè)置方法如下:
在封裝的網(wǎng)絡(luò)請(qǐng)求類里面如下設(shè)置
AFWEBAPI_REQUEST_TIMEOUT 這個(gè)參數(shù)為超時(shí)時(shí)間
#define AFWEBAPI_REQUEST_TIMEOUT 20
#pragma mark - 單例 & 構(gòu)造函數(shù)
+ (instancetype)sharedTools {
static WXNetworkTools *instance;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
instance = [[self alloc] initWithBaseURL:[NSURL URLWithString:WX_SERVER_URL]];
instance.requestSerializer.timeoutInterval = AFWEBAPI_REQUEST_TIMEOUT;
});
return instance;
}
在封裝的方法里面,在失敗的回調(diào)里面寫下如下代碼,至于怎么處置就看自己了,我這里具體需求沒(méi)有給,我先做了一個(gè)彈框處理
/// @param finished 完成回調(diào)
- (void)requestWithMethod:(WXRequestMethod)method URLString:(NSString *)URLString parameters:(id)parameters finished:(WXRequestCallBack)finished {
NSString *methodName = (method == GET) ? @"GET" : @"POST";
NSLog(@"%@",URLString);
[[self dataTaskWithHTTPMethod:methodName URLString:URLString parameters:parameters uploadProgress:nil downloadProgress:nil success:^(NSURLSessionDataTask *task, id responseObject) {
finished(responseObject, nil);
if (responseObject[@"status"] && [responseObject[@"status"] integerValue] == 1000) {
//這里來(lái)賬號(hào)互踢
[[NSNotificationCenter defaultCenter] postNotificationName:KMutualKickNotification object:nil];
return;
}
} failure:^(NSURLSessionDataTask *task, NSError *error) {
NSLog(@"網(wǎng)絡(luò)請(qǐng)求錯(cuò)誤 %@", error);
//這里來(lái)處理網(wǎng)絡(luò)超時(shí)
if (error.code == -1001) {
[SVProgressHUD showErrorWithStatus:@"網(wǎng)絡(luò)超時(shí)!"];
return ;
}
finished(nil, error);
}] resume];
}
如何去調(diào)試呢,難道去電梯里面去調(diào)試嗎?
下面截圖教你們?nèi)绾稳プ鼍W(wǎng)絡(luò)限制去摸你用戶網(wǎng)絡(luò)不好的情況
使用工具:charles(青花瓷)
頂端的工具條--》Proxy --》Throttling Settting
設(shè)置好之后千萬(wàn)要記得去勾選Throttling,不然沒(méi)有效果
頂端的工具條--》Proxy --》Throttling


這樣就ok了
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)各位iOS開(kāi)發(fā)者們能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
- Java編程Webservice指定超時(shí)時(shí)間代碼詳解
- Python 2.x如何設(shè)置命令執(zhí)行的超時(shí)時(shí)間實(shí)例
- IIS 7.5 asp Session超時(shí)時(shí)間設(shè)置方法
- PHP請(qǐng)求遠(yuǎn)程地址設(shè)置超時(shí)時(shí)間的解決方法
- ASP.NET頁(yè)面請(qǐng)求超時(shí)時(shí)間設(shè)置多種方法
- 詳解Nginx服務(wù)器中配置超時(shí)時(shí)間的方法
- C++設(shè)置超時(shí)時(shí)間的簡(jiǎn)單實(shí)現(xiàn)方法
- Python中為feedparser設(shè)置超時(shí)時(shí)間避免堵塞
- 一個(gè)嚴(yán)格的PHP Session會(huì)話超時(shí)時(shí)間設(shè)置方法
- 客戶端設(shè)置超時(shí)時(shí)間真的很重要
相關(guān)文章
iOS overFullScreen與fullScreen區(qū)別分析
這篇文章主要介紹了iOS overFullScreen與fullScreen區(qū)別分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11
iOS如何獲取當(dāng)前日期前后N天的時(shí)間示例代碼
這篇文章主要給大家介紹了關(guān)于iOS如何獲取當(dāng)前日期前后N天的時(shí)間的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)各位iOS開(kāi)發(fā)者們具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起看看吧。2017-11-11
IOS中UIWebView加載Loading的實(shí)現(xiàn)方法
最近有朋友問(wèn)我類似微信語(yǔ)音播放的喇叭動(dòng)畫和界面圖片加載loading界面是怎樣實(shí)現(xiàn)的,是不是就是一個(gè)gif圖片呢!我的回答當(dāng)然是否定了,當(dāng)然不排除也有人用gif圖片啊!2015-05-05
IOS 開(kāi)發(fā)之swift中手勢(shì)的實(shí)例詳解
這篇文章主要介紹了IOS 開(kāi)發(fā)之swift中手勢(shì)的實(shí)例詳解的相關(guān)資料,希望通過(guò)本文大家能掌握IOS手勢(shì)的使用方法,需要的朋友可以參考下2017-09-09
IOS開(kāi)發(fā)之CocoaPods安裝和使用教程
CocoaPods應(yīng)該是iOS最常用最有名的類庫(kù)管理工具了,通過(guò)cocoaPods,只需要一行命令就可以完全解決,當(dāng)然前提是你必須正確設(shè)置它。重要的是,絕大部分有名的開(kāi)源類庫(kù),都支持CocoaPods。所以,作為iOS程序員的我們,掌握CocoaPods的使用是必不可少的基本技能了。2014-09-09

