如何确定NSURLSessionTask的请求何时开始?

Shizam

我使用NSURLSessionTasks,并且尝试监视一些HTTP请求花费多长时间,在NSURLSessionTask实际发出初始请求时可以监视什么委托方法(或其他方法)如果这是NSURLConnection内部,NSOperation我将在启动请求时启动计时器,但无法控制任务启动的时间。

布拉克雅克

请检查NSURLSessionTaskDelegate它具有以下委托回调:

URLSession:task:didCompleteWithError:
URLSession:task:didReceiveChallenge:completionHandler:
URLSession:task:didSendBodyData:totalBytesSent:totalBytesExpectedToSend:
URLSession:task:needNewBodyStream:
URLSession:task:willPerformHTTPRedirection:newRequest:completionHandler:

计算时间间隔。

选项01 [近似值]:

您应该在调用resume方法之后立即启动计时器,并计算何时调用委托回调didCompleteWithError。

self.dataTask = [self.session dataTaskWithRequest:theRequest];
[self.dataTask resume];

NSTimeInterval totalCountdownInterval;
NSDate* startDate = [NSDate date];
NSTimer* timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(checkCountdown:) userInfo:nil repeats:YES];

选项02 [如果需要精度]:

NSURLSessionTask的属性均符合KVO。

[self.dataTask addObserver:self forKeyPath:@"someKeyPath" options:NSKeyValueObservingOptionOld context:nil];
[self.dataTask resume];

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context{
  // do some calculation after checking state

   /* 
NSURLSessionTaskStateRunning = 0,                     
    NSURLSessionTaskStateSuspended = 1,
    NSURLSessionTaskStateCanceling = 2,                   
    NSURLSessionTaskStateCompleted = 3, */
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何确定何时在GAE托管VM上启动请求?

来自分类Dev

如何在scrapy中查找请求何时开始以及何时结束

来自分类Dev

如何显示“开始... [确定]”

来自分类Dev

如何确定何时拍摄照片?

来自分类Dev

使用节点请求模块确定cookie何时过期

来自分类Dev

netty如何确定读取何时完成?

来自分类Dev

如何确定何时使用-fsanitize = memory?

来自分类Dev

JMeter。如何确定线程组何时完成

来自分类Dev

TcpClient-如何确定何时传递字节?

来自分类Dev

如何确定Vue何时完成DOM更新?

来自分类Dev

如何确定scrollviewer何时结束滚动?

来自分类Dev

如何确定SQL查询何时结束?

来自分类Dev

如何确定何时创建git ref?

来自分类Dev

我如何确定函数何时强烈凸出?

来自分类Dev

如何确定何时在弹出窗口之外单击?

来自分类Dev

如何确定何时关闭浏览器?

来自分类Dev

如何确定何时创建GKE集群?

来自分类Dev

如何确定scrollviewer何时结束滚动?

来自分类Dev

如何确定PC何时打开Windows 10?

来自分类Dev

如何从NSURLSessionTask禁用缓存

来自分类Dev

如何检测Windows开始菜单/开始屏幕何时打开?

来自分类Dev

请求如何确定响应的编码?

来自分类Dev

如何确定范围从1开始的向量的索引

来自分类Dev

F#:不确定如何开始

来自分类Dev

确定何时Windows计算机已完全启动并开始响应

来自分类Dev

如何找到XR会话何时开始Three.js WebXR

来自分类Dev

如何检测何时在Android键盘上按下了“开始”

来自分类Dev

如何确定何时将功能标记为不安全?

来自分类Dev

此for循环如何确定何时中断循环