最新要闻
- 周二银行间回购定盘利率涨跌互现(05-30)
- 荣耀90系列发布:两款机型详解-世界快报
- 玩家在《塞尔达传说:王国之泪》造出二极管!信息时代要来了 环球播资讯
- 商州一出村道路泥泞出行难,主管部门:将用卵石铺设
- 《小美人鱼》真人电影首映三天票房为9540万美元 低于业界预期
- 微软推出《扫雷》与《纸牌》系列游戏周边商品 为广大电脑玩家熟悉
- 米哈游举办首届“星辰嘉年华 小王子杯”海外赛事 总奖金高达27万美元
- 因存在极大的安全隐患 多地管理部门开始立法禁止“低头族”过马路玩手机
- 梅西加冕五大联赛历史射手王 个人冠军数量追平阿尔维斯
- 贵州省发展改革委到铜仁市调研峰谷分时电价政策
- 扎克伯格净资产达到923亿美元 Meta将削减优先级较低的项目
- 当前观点:茅台冰淇淋一年卖出近千万杯:将研发酒心巧克力、棒支
- 群联发布新主控E31T:PCIe 5.0 SSD终于要便宜了!
- 疑台风刮来遍地生蚝 广东居民捡200斤:画面震撼 网友羡慕_每日速递
- 首发7折 联想65W氮化镓插排明天开售:出差不用带电源了
- 全球唯一一只纯白色的大熊猫惊艳亮相 被网友戏称为“卸了妆”的国宝
广告
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
iOS网络数据指标收集
(资料图片)
在平时开发中有时候需要收集网络不同阶段性能数据来分析网络情况,下面总结了2种收集方式。1.通过NSURLSession提供的代理方法收集2.通过NSURLProtocol做统一网络请求拦截收集通过NSURLSession提供的代理方法收集当NSURLSessionTask完成并返回响应时,NSURLSession会收集一些关于任务运行的性能指标,如请求时间、响应时间、传输速度、重定向次数等等。这些指标会被包装成NSURLSessionTaskMetrics对象,并在任务完成时传递给代理对象。在这个方法中可以对这些指标进行处理和记录,以便对网络性能进行分析和优化。@interface MySessionDelegate : NSObject通过NSURLProtocol做统一网络请求拦截收集NSURLProtocol是自定义URL加载系统的一部分,允许开发者拦截URL请求并做自定义的逻辑处理。NSURLProtocol的主要作用是在URL请求和URL响应之间添加拦截器,提供了对URL请求的拦截和处理的能力。NSURLProtocol常用方法说明canInitWithRequest::用于判断是否需要处理该请求,如果返回YES,则会继续调用其他方法处理该请求,如果返回NO,则会终止处理该请求。canonicalRequestForRequest::用于获取规范化的请求对象,可以在这里修改请求头等信息。startLoading::用于开始处理请求,可以在这里发起网络请求、读取本地缓存等操作。stopLoading::用于停止处理请求,通常在此方法中取消网络请求、关闭文件等操作。NSURLProtocol的使用非常灵活,可以用于实现自定义的网络拦截器、缓存策略、调试工具等。代码举例@end@implementation MySessionDelegate- (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didFinishCollectingMetrics:(NSURLSessionTaskMetrics *)metrics { // 打印出请求的各项指标 for(NSURLSessionTaskTransactionMetrics *transaction in metrics.transactionMetrics) { NSHTTPURLResponse *response = (NSHTTPURLResponse *)transaction.response; NSLog(@"Request URL: %@", transaction.request.URL); NSLog(@"HTTP Status Code: %ld", (long)response.statusCode); NSLog(@"Request Start Time: %@", transaction.startDate); NSLog(@"Request End Time: %@", transaction.endDate); NSLog(@"Request Duration: %f", [transaction.duration doubleValue]); NSLog(@"Bytes Sent: %lld", transaction.countOfRequestBodyBytesSent); NSLog(@"Bytes Received: %lld", transaction.countOfResponseBodyBytesReceived); NSLog(@"Redirection Count: %lu", (unsigned long)transaction.redirectCount); NSLog(@"Request Method: %@", transaction.request.HTTPMethod); }}@end
@interface MyURLProtocol : NSURLProtocol@end@interface MyURLProtocol()@property(nonatomic, strong) NSURLConnection *connection;@property(atomic, strong) NSMutableData *receivedData;@end@implementation MyURLProtocol+ (BOOL)canInitWithRequest:(NSURLRequest *)request { if ([NSURLProtocol propertyForKey:kCustomURLProtocolKey inRequest:request]) { return NO; } #if defined(Debug) return YES;#elif defined(Release) return NO;#endif}+ (NSURLRequest *)canonicalRequestForRequest:(NSURLRequest *)request { return request;}- (void)startLoading { NSMutableURLRequest *mutableRequest = [[self request] mutableCopy]; [NSURLProtocol setProperty:@YES forKey:kCustomURLProtocolKey inRequest:mutableRequest]; self.connection = [NSURLConnection connectionWithRequest:mutableRequest delegate:self];}- (void)stopLoading { [self.connection cancel]; self.connection = nil;}#pragma mark - NSURLConnection Delegate#pragma mark - NSURLConnection Delegate- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{ [[self client] URLProtocol:self didReceiveResponse:response cacheStoragePolicy:NSURLCacheStorageNotAllowed];}- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{ [[self client] URLProtocol:self didLoadData:data]; if (self.receivedData == nil) { self.receivedData = [[NSMutableData alloc] init]; } [self.receivedData appendData:data];}-(void)connectionDidFinishLoading:(NSURLConnection *)connection{ NSURLRequest *logRequest = [self.request copy]; NSData *data = [self.receivedData copy]; [[self client] URLProtocolDidFinishLoading:self]; self.connection = nil;#if defined(Debug) dispatch_async(dispatch_get_main_queue(), ^{ [[LogManager sharedInstance] addNetworkLog:logRequest response:data]; });#else dispatch_async(dispatch_get_main_queue(), ^{ [[LogManager sharedInstance] addNetworkLog:logRequest response:data]; });#endif }- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error{ [[self client] URLProtocol:self didFailWithError:error]; self.connection = nil;}@end
关键词:
-
Java并发(七)----线程sleep、yield、线程优先级
1、sleep与yieldsleep调用sleep会让当前线程从Running进入TimedWaiting状态(阻塞)其它线程可以使用interr
来源: iOS网络数据指标收集
Java 集合类详解(一)_全球焦点
Java并发(七)----线程sleep、yield、线程优先级
即时设计—小组项目原型示例(附AI功能)
周二银行间回购定盘利率涨跌互现(05-30)
荣耀90系列发布:两款机型详解-世界快报
玩家在《塞尔达传说:王国之泪》造出二极管!信息时代要来了 环球播资讯
商州一出村道路泥泞出行难,主管部门:将用卵石铺设
2023-05-30:Redis6.0为什么要引入多线程呢?
《小美人鱼》真人电影首映三天票房为9540万美元 低于业界预期
微软推出《扫雷》与《纸牌》系列游戏周边商品 为广大电脑玩家熟悉
米哈游举办首届“星辰嘉年华 小王子杯”海外赛事 总奖金高达27万美元
因存在极大的安全隐患 多地管理部门开始立法禁止“低头族”过马路玩手机
梅西加冕五大联赛历史射手王 个人冠军数量追平阿尔维斯
贵州省发展改革委到铜仁市调研峰谷分时电价政策
扎克伯格净资产达到923亿美元 Meta将削减优先级较低的项目
当前观点:茅台冰淇淋一年卖出近千万杯:将研发酒心巧克力、棒支
群联发布新主控E31T:PCIe 5.0 SSD终于要便宜了!
疑台风刮来遍地生蚝 广东居民捡200斤:画面震撼 网友羡慕_每日速递
首发7折 联想65W氮化镓插排明天开售:出差不用带电源了
全球唯一一只纯白色的大熊猫惊艳亮相 被网友戏称为“卸了妆”的国宝
经典漫画《水果篮子》将推出全新舞台剧 预定10月开演
宝可梦社联合NHK交响乐团举行交响音乐会2023 预定8月10日开演
全球快报:中国星辰 | 神舟十六号增强使用北斗导航信号可靠性
呈和科技:166.67万股限售股2023年6月7日解禁
CentOS通过yum安装Docker
环球今热点:4月银行间本币市场:流动性保持合理充裕 债券市场净融资同比大增
分析师称债务上限协议或拖累美国经济
【环球新要闻】论文摘要英文翻译app(论文摘要英文翻译器)
卷疯了!iPhone 14入手仅需4999元|当前要闻
世界即时:奖金高达191万元!米哈游即将推出《原神》首个国际赛事
世界微动态丨专家建议女儿随母姓:传承应该不止是传给儿子、孙子
摩尔线程国产显卡新品发布会官宣!这次会有什么惊喜?
神舟十六号成功发射 美媒纷纷报道:中国剑指登月 全球微速讯
神十六乘组进驻天宫空间站:6位中国航天员太空聚会拍了全家福 环球微头条
腾讯二面:有 40 亿个 QQ 号,限制 1G 内存,问如何去重?被问懵了!
14)系统函数|环球快播
数据的新时代:可交互大屏展现数字孪生的奇妙效果
进入聊天室是什么意思(进入聊天室)
聚焦:谈何和何谈有什么区别(谈何的意思)
昔日国内最强播放器!快播正式宣告破产 王欣早已放下:技术永远无罪
刘慈欣:未来科幻作家会被AI代替 说人有灵魂不过是自我安慰
219元鼠标卷王!达摩鲨M3三模无线鼠标图赏-天天时快讯
世界热议:四川省阿坝藏族羌族自治州黑水县2023-05-30 15:53发布雷电黄色预警
2023新一线城市名单官宣!具体有哪些?最新排名介绍! 天天关注
倒计时7天!AIRIOT新品发布会,6月6日北京见。 环球要闻
焦点简讯:MySQL之DQL数据查询操作
【环球新要闻】Kali渗透Windows服务器
⌈力扣⌋删除字符串中的所有相邻重复项|当前快播
canon(450d)-世界今头条
世界头条:乘联会:2023年4月乘用车新四化指数为78.7
离谱!宠物鳄鱼从20多层高楼坠落摔成重伤 科普:高空坠物有多危险|天天快看
新显卡摆烂 英伟达营收却大涨 老黄这是要抛弃玩家? 每日焦点
【环球聚看点】7699元 Intel蝰蛇峡谷迷你主机618大促:I7-12700H+A770M独显
焦点速递!高速上小孩拉了一下手刹 驾驶证直接被扣了
韩国批准微软收购动视暴雪:份额太小没威胁 环球快播
日照假期2日游,轻轻松松拿捏到位,攻略篇 世界热门
Python 实现 m3u8 视频下载_全球消息
AIGC下的低代码赛道,你我皆是拓荒人
天天观点:【智能软件安全】上海道宁为您带来智能软件安全平台——Veracode,帮助您全面地保护您构建和管理地应用程序
全球即时:商品日报(5月30日):沪锡续涨近3% 纯碱反弹驱动不足再度转跌
全球今头条!辽宁男篮队员韩德君籍贯(韩德君真实身高)
总投入8700多万元 南安一家医院预计年底前投用-最新消息
40年传奇落幕:《夺宝奇兵:命运转盘》国内定档6月30日 环球热头条
618遇上毕业季:这三款高性价比的华硕无畏轻薄本 你值得拥有
全球百事通!2023新一线城市名单官宣: 北方仅4城上榜 有你的家乡吗?
神舟十六号与空间站完成交会对接:3名航天员即将进入天和核心舱|每日看点
猪场夜间电闸跳闸 高温致五千头猪死亡:损失上千万|每日快播
天天快报!刮腻子和刮完腻子有什么区别 刮大白和刮腻子区别
【Haxe】(一)VSCode 搭建 Haxe 开发环境
什么是SSCC码
详解RocketMQ 顺序消费机制 快看点
每日精选:当AI开始制药:研发周期可缩短一半,仍无任何新药面世
【报资讯】每日机构分析:5月30日
老司机注意!昆明警方紧盯酒驾醉驾等严重交通违法行为
6989元起 华硕灵耀13 2023深湖蓝配色上架:2.8K OLED屏
世界观热点:业务能力超强!两只边牧协同驱赶数百只羊:无一走散
笔记本为何还没充满就不再充电了?原因揭开|微动态
曾拒绝生产SUV 法拉利:并不在乎自动驾驶
一代回忆!快播公司破产注销
直播卖酒用“茅台酒厂”误导消费者,北京福气连连公司被罚30万_今日快讯
如何用ReadWriteLock实现一个通用的缓存中心?|环球今热点
速读:13)流程控制语句
一文详解 Sa-Token 中的 SaSession 对象-世界百事通
世界观察:第十二单元 常用API
持球还得练练!杰伦抢七战出现8失误 NBA历史第二多 即时
预算不够免签来凑!米兰开启免签大法,夏窗欲网罗多名自由球员
史莱克七怪神装公布,小舞二次发育,宁荣荣最美,小奥烟熏妆差评-当前热门
环球消息!演唱会门票秒罄!黄牛党捞钱术升级
速看:日本专家三年研究:中学生入学得到手机脑力直接停滞在小学
天天消息!网友评新一代LCD神机Redmi Note 12T Pro:卢伟冰焊门很准
第十一单元 面向对象三:继承与多态_世界热资讯
NTP网络校时服务器 (GPS+北斗+恒温晶振)双系统设计与研究|看点
焦点简讯:[javascript/html] HTML中Location对象详解
省“春蕾计划+我的书房”项目在盐城东台启动 热文
环球资讯:从华为离职创业的天才少年刚拿了百度投资:估值被曝已超独角兽
曾遭霸凌的解说YammerS离世 DOTA2官微回应:深感痛心_全球观天下
每日热议!兄妹四人同时查出肠道肿瘤:1/4肠癌患者受家族因素影响
天玑9300要绝杀:采用4+4全大核架构 性能狙击A17功耗大降
京西产业引导基金签约发布 规模10.1亿元|当前热门