当前位置: 首页 > 编程笔记 >

iOS中设置网络超时时间+模拟的方法详解

亢奇
2023-03-14
本文向大家介绍iOS中设置网络超时时间+模拟的方法详解,包括了iOS中设置网络超时时间+模拟的方法详解的使用技巧和注意事项,需要的朋友参考一下

设置方法如下:

在封装的网络请求类里面如下设置

AFWEBAPI_REQUEST_TIMEOUT 这个参数为超时时间

#define AFWEBAPI_REQUEST_TIMEOUT 20

#pragma mark - 单例 & 构造函数
+ (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;
}

在封装的方法里面,在失败的回调里面写下如下代码,至于怎么处置就看自己了,我这里具体需求没有给,我先做了一个弹框处理

/// @param finished 完成回调
- (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) {


   //这里来账号互踢
   [[NSNotificationCenter defaultCenter] postNotificationName:KMutualKickNotification object:nil];


   return;

  }

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

  NSLog(@"网络请求错误 %@", error);

  //这里来处理网络超时
  if (error.code == -1001) {

   [SVProgressHUD showErrorWithStatus:@"网络超时!"];

   return ;
  }
  finished(nil, error);

 }] resume];
}

如何去调试呢,难道去电梯里面去调试吗?

下面截图教你们如何去做网络限制去摸你用户网络不好的情况

使用工具:charles(青花瓷)

顶端的工具条--》Proxy --》Throttling Settting

设置好之后千万要记得去勾选Throttling,不然没有效果
顶端的工具条--》Proxy --》Throttling

这样就ok了

总结

以上就是这篇文章的全部内容了,希望本文的内容对各位iOShtml" target="_blank">开发者们能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对小牛知识库的支持。

 类似资料:
  • 本文向大家介绍iOS判断网络请求超时的方法,包括了iOS判断网络请求超时的方法的使用技巧和注意事项,需要的朋友参考一下  本文介绍了iOS判断网络请求超时的方法,代码具体如下: 打印 error 可见: po error.localizedDescription  请求超时。 po error.code  -1001 所以使用 error.code是否等于   -1001  判断请求超时 以上就是

  • 问题内容: 我正在尝试使用Java设置网络超时我的Oracle数据库连接。但是,我遇到了错误。以下是示例代码及其各自的例外。 我得到的异常是: 我相信这与抽象方法有关(请参见AbstractMethodError)。可能导致此错误的原因是我只实现了我认为已经在Java中定义的方法,因此不拒绝编译。 注意:如果有抽象方法,Java不允许编译具体的类。 问题答案: 是JDBC 4.1中引入的,而JDB

  • 本文向大家介绍SpringBoot设置接口超时时间的方法,包括了SpringBoot设置接口超时时间的方法的使用技巧和注意事项,需要的朋友参考一下 SpringBoot设置接口访问超时时间有两种方式 一、在配置文件application.properties中加了spring.mvc.async.request-timeout=20000,意思是设置超时时间为20000ms即20s, 二、还有一种

  • 本文向大家介绍详解Nginx服务器中配置超时时间的方法,包括了详解Nginx服务器中配置超时时间的方法的使用技巧和注意事项,需要的朋友参考一下 一、啥时候用到        用来设置请求资源和服务器返回的时间,保证一个请求占用固定时间,超出后报504超时!这样可以保证一个请求占用过长时间。 二、主要参数       使用nginx服务器如果遇到timeou情况时可以如下设置参数,使用fastcgi

  • 本文向大家介绍C++设置系统时间及系统时间网络更新的方法,包括了C++设置系统时间及系统时间网络更新的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C++设置系统时间及系统时间网络更新的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的C++程序设计有所帮助。

  • 本文向大家介绍php设置页面超时时间解决方法,包括了php设置页面超时时间解决方法的使用技巧和注意事项,需要的朋友参考一下 有时候我的页面因为网络卡,会一直转,我想是不是可以给页面设置一个超时时间,多久没反应就提示超时 比如php里的set_time_limit(300) 我想不是php页面也有个超时机制 ------解决思路---------------------- php 里不就是set_t