当我的应用程序在前台运行时,我会看到定期调用:NSURLSessionTaskDelegate -> URLSession:task:didSendBodyData:totalBytesSent:totalBytesExpectedToSend:
当我的应用程序移至后台并暂停时,对此方法的调用将停止,因此我对NSURLSessionUploadTask是否继续上载没有任何反馈。是否有任何技术可以获得有关上传的反馈?
答案 0 :(得分:2)
通过查看有关NSURLSessionUploadTask
的其他StackOverflow帖子,我可以看到有很多关于此功能的混淆。以下是我发现的一些反馈机制,以帮助减少这种混淆:
使用Wireshark之类的网络代理和数据包嗅探器(有关详细信息,请参阅this)。过滤除上传文件到的服务器之外的所有流量。查找来自服务器的HTTP响应(200)和来自iOS设备的FIN,ACK
,以表示上载已完成且已收到响应。您还可以使用数据包嗅探器来诊断上载问题。
使用Instruments
来捕获流程nsurlsessiond
的网络流量
NSURLSessionTaskDelegate -> URLSession:task:didSendBodyData:totalBytesSent:totalBytesExpectedToSend:
对此方法的一些调用在应用程序进入后台之前未处理过,可能会被称为NSURLSessionTaskDelegate: -> URLSession:dataTask:didReceiveData:
NSURLSessionTaskDelegate -> NSURLSession:task:didCompleteWithError:
NSURLSessionDelegate -> :URLSessionDidFinishEventsForBackgroundURLSession:
我还在github here上放了一个非常基本的NSURLSessionUploadTask示例应用程序和webserver。