Afnetworking 各参数设置以获取网络状态监控参数

#if PRINT_MATRICS_SUPPORT

        [self enableMetricsSupport];

#endif

#if PRINT_MATRICS_SUPPORT

– (void)enableMetricsSupport {

        NSDateFormatter *_dateFormatter = [[NSDateFormatter alloc] init];

        [_dateFormatter setFormatterBehavior:NSDateFormatterBehavior10_4]; // 10.4+ style

        [_dateFormatter setDateFormat:@”yyyy/MM/dd HH:mm:ss:SSS”];

        [self.client setTaskDidFinishCollectingMetricsBlock:^(NSURLSession * _Nonnull session, NSURLSessionTask * _Nonnull task, NSURLSessionTaskMetrics * _Nullable metrics) {

            PRINT(@”【NETWORK】task origin url:%@, current url:%@
metrics.redirectCount:%lu
task开始时间:%@,结束时间:%@,消耗时间:%fms
“,task.originalRequest.URL.absoluteString, task.currentRequest.URL.absoluteString, (unsigned long)metrics.redirectCount, [_dateFormatter stringFromDate:metrics.taskInterval.startDate],[_dateFormatter stringFromDate:metrics.taskInterval.endDate],metrics.taskInterval.duration * 1000);

           PRINT(@”【NETWORK】metric statistics begin ————>
“);

           for (NSURLSessionTaskTransactionMetrics *metric in metrics.transactionMetrics) {

                if (metric) {

                    if (@available(iOS 13.0, *)) {

                        PRINT(@”metric.localAddress:%@”,metric.localAddress);

                        PRINT(@”metric.remoteAddress:%@”,metric.remoteAddress);

                    } else {

                        // Fallback on earlier versions

                    }

                    //请求开始时间

                    NSString *sreq = [NSString stringWithFormat:@”%@”, [_dateFormatter stringFromDate:metric.fetchStartDate]];

                    //域名解析时间

                    NSString *dnst = [NSString stringWithFormat:@”%@,%@,%fms”,[_dateFormatter stringFromDate:metric.domainLookupStartDate],[_dateFormatter stringFromDate:metric.domainLookupEndDate],[metric.domainLookupEndDate timeIntervalSinceDate:metric.domainLookupStartDate] * 1000];

                    //连接建立时间

                    NSString *cnnt = [NSString stringWithFormat:@”%@,%@,%fms”,[_dateFormatter stringFromDate:metric.connectStartDate],[_dateFormatter stringFromDate:metric.connectEndDate],[metric.connectEndDate timeIntervalSinceDate:metric.connectStartDate] * 1000];

                    //ssl验证时间

                    NSString *sslt = [NSString stringWithFormat:@”%@,%@,%fms”,[_dateFormatter stringFromDate:metric.secureConnectionStartDate],[_dateFormatter stringFromDate:metric.secureConnectionEndDate], [metric.secureConnectionEndDate timeIntervalSinceDate:metric.secureConnectionStartDate] * 1000];

                    //从客户端发送HTTP请求到服务器所耗费的时间

                    NSString *sdt = [NSString stringWithFormat:@”%@,%@,%fms”,[NSString stringWithFormat:@”%@”, [_dateFormatter stringFromDate:metric.requestStartDate]],[NSString stringWithFormat:@”%@”, [_dateFormatter stringFromDate:metric.requestEndDate]],[metric.requestEndDate timeIntervalSinceDate:metric.requestStartDate] * 1000];

                    //客户端从开始接收数据到接收完所有数据的时间

                    NSString *rcvt = [NSString stringWithFormat:@”%fms”, [metric.responseEndDate timeIntervalSinceDate:metric.responseStartDate] * 1000];

                    //响应报文首字节到达时间

                    NSString *wtt = [NSString stringWithFormat:@”%fms”, [metric.responseStartDate timeIntervalSinceDate:metric.requestEndDate] * 1000];

                    //请求结束时间

                    NSString *eres = [NSString stringWithFormat:@”%@”, [_dateFormatter stringFromDate:metric.responseEndDate]];

                    //网络请求总时间

                    NSString *ttt = [NSString stringWithFormat:@”%fms”, [metrics.taskInterval duration] * 1000];

                   PRINT(@”【NETWORK】metric url:%@,
请求开始时间:%@,
域名解析时间:%@,
连接建立时间:%@,
ssl验证时间:%@,
从客户端发送请求到服务器耗费的时间:%@,
响应报文首字节到达时间:%@,
客户端从开始接收数据到接收完所有数据的时间:%@,
请求结束时间:%@,
网络请求总时间:%@
“,metric.request.URL.absoluteString,sreq,dnst,cnnt,sslt,sdt,rcvt,wtt,eres,ttt);

                }

            }

            PRINT(@”【NETWORK】<———— metric statistics end
“);

        }];

}

#endif

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
桃子yummy_yummy的头像 - 宋马
评论 抢沙发

请登录后发表评论

    暂无评论内容