我在使用uploadTask
作为URLSessionConfiguration.background
时经历了一些奇怪的行为。
我的自定义委托正在实现属于URLSessionDelegate
,URLSessionTaskDelegate
和URLSessionDataDelegate
的所有委托方法。所有这些都有一个print
语句,指示该方法已被调用。
我试图将五个图像上传到服务器,每个图像都有自己的会话,其中符合图像ID的ID。
问题是,当使用非常慢的连接"边缘"上传时,上传进度将在100%达到100%之前,每当didFinishCollectingMetrics
被调用时,都会在此处看到:data
当使用缓慢的连接时,这并非一直都在发生。
有人对这里发生的事情有任何想法吗?
边缘网络众所周知,网络是不可靠的,并且频繁的上传失败并不是非典型的。解决此问题的方法是通过用某种形式的块上传替换全基于文件的上传,以便您可以继续上传的位置,但这需要服务器支持。
增加nsurlsession的超时要求和资源:
NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
[configuration setTimeoutIntervalForRequest:120];
[configuration setTimeoutIntervalForResource:240];
NSURLSession *session = [NSURLSession sessionWithConfiguration:configuration];
使用session
上传您的图像