问题标签 [nsurlsessiondownloadtask]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2868 浏览

ios - nsurlsession 用于循环中的多个请求

我一直在尝试下载图像/txt,但我需要这样做,直到该 url 存在并下载该图像/txt 文件,所以我继续再次调用相同的方法,当我设置调试点时,我看到了这个线程队列

如果 url 正确,我在调试导航器中看不到任何队列,因为它不再调用方法。我将 AFNetworking 库引用到相同的库,但我想它的工作方式与我在 NSURLSession 中的工作方式相同,对吧?

案例:-我检查 url 是否存在,所以如果它存在,则加载两个 url(time.txt 和 image.png),否则调用 WebService(XmlParser)并继续检查以下文件的 url。

显示存在者。

还检查了这个AFNetworking Question但它没有帮助,因为我不想添加操作数量。我想加载任何存在的文件。

因为在AFNetworking/NSURLSession中无论是成功还是失败都会完成操作。


如果我做错了,请纠正我并帮助我解决这个问题。

0 投票
0 回答
418 浏览

ios - 使用 NSURLSessionDataTask 处理不完整的数据

NSURLSessionDataTask用来下载数据。我看到连接中断但我仍然收到数据的情况。我应该如何处理这些情况?

  • 我可以保证得到某种错误吗?
  • 我应该将数据长度与响应进行比较expectedContentLength吗?它可靠吗?如果它不可用怎么办?
  • 还有什么?

代码:

0 投票
1 回答
2015 浏览

ios - AFNetworking EXC_BAD_ACCESS (code=2, address=0x0) in downloadTask

我有一个应用程序,它在登录后为客户编译客户特定报告列表。这些报告正在显示,我已经放置了一个“查看”按钮,该按钮应该下载 PDF 文件,并在应用程序中显示它。

在这个阶段,当按下查看按钮时,我似乎遇到了内存问题,我不确定如何找到问题所在。这是我的代码:

当在任何单元格中按下视图按钮时,我得到 NSLog 说“成功按下按钮”但它在出现错误后立即崩溃

任何想法如何解决这一问题?

0 投票
1 回答
1647 浏览

ios - NSURLSession 在 iOS 7.0.x 上挂起

我们已经配置了 NSULRSession

在 iOS 7.0.x 上没有构建 SDK 7.0 和 7.1。iOS 7.1 上没有出现问题。

我们经常可以看到以下内容:

  • 开始执行后台下载

    [AppDelegate 应用程序:执行FetchWithCompletionHandler:]

  • 但是 30 秒后,我们的委托没有任何回调。

我们已经实施

  • 我们没有任何回调。

可能有什么问题?它看起来像 iOS 7.0.x 问题。有什么好的解决方法吗?

0 投票
1 回答
84 浏览

ios7 - iOS7中的间歇性服务器错误

我正在使用 NSURLSessionDownloadTask 使用以下代码从我的 goDaddy 服务器中下载一个简单的文本文件:

我遇到的问题是这真的很好......有时。其他时候我收到一条错误消息,指出:“找不到具有指定主机名的服务器”。

由于 URL 是硬编码的并且永远不会改变,我不知道这怎么会发生。除非 goDaddy 让我失望,并且服务器突然部分时间变得不可用,否则我很茫然。值得一提的是,今天才开始这样做,所以也许是 goDaddy。

0 投票
0 回答
396 浏览

ios - 启动 NSURLSessionDownloadTask 后出现 NSNetwork 错误

我用来NSURLSession在后台下载文件。这是我开始新的方式 NSURLSessionDownloadTask

调用后resume遇到如下错误:

在此之后,没有delegate调用任何方法(似乎会话被终止了)。互联网连接正常(Safari 能够打开网站)。

它在 iOS 7.0.4 上只发生过一次。有人可以解释一下这个错误是什么意思吗?这是一个 iOS 7.0.x 错误还是有一个好的解决方法?

0 投票
1 回答
2848 浏览

ios - NSURLSession downloadTaskWithURL 返回零

我在我的应用程序中遇到问题,NSURLSessionDownloadTask我使用代码创建了数百个下载任务:

在 xcode 控制台中,我有这样的消息:

同样在组织者的控制台中,我看到了这条消息:

NSURLSession 之前创建的:

所有网址都是有效的,只有当我在应用程序启动后开始下载时才会发生这种情况

请分享您对我的问题的想法。提前致谢。

更新:

我还添加了对缓存目录的检查,确保在我开始下载之前存在但没有任何改变

编辑

附加信息,我无法在模拟器中或在调试模式下的设备上重现该错误(启用断点)。

0 投票
2 回答
7361 浏览

ios - 使用 iOS 后台传输服务下载多个文件

这里有一个问题:如何使用新的后台传输服务(包括应用程序被暂停的情况)逐个下载多个文件?我在 objc.io 上阅读了这个很棒的教程,并让它适用于一个文件。但是我需要一个一个的下载文件(所以添加多个NSURLSessionDownloadTaskss是行不通的(因为下载的url只在很短的时间内有效)

基本上我要做的是在通知应用程序上一次下载完成后安排另一个下载application:handleEventsForBackgroundURLSession:completionHandler:。但是我只调用了一次这个方法。知道为什么吗?任何关于如何在应用程序暂停时实现多个文件的顺序下载的建议都值得赞赏。

更新:

抱歉,我可能不清楚实际问题是什么:并不是说我没有收到关于任务完成的通知,而是当应用程序在 backgorund中运行时我没有application:handleEventsForBackgroundURLSession:completionHandler:调用第二个下载任务。我确实为第一个下载任务调用了它(它在应用程序处于前台时开始,然后在下载完成之前进入后台)然后我触发第二个下载任务,调用我进入并且从未调用过此方法第二个文件。completionHandlerapplication:handleEventsForBackgroundURLSession:completionHandler:

0 投票
2 回答
1398 浏览

ios - NSURLSession backgroundSession 完成时的附加 API 调用

我需要通过 PUT 将内容上传到 AWS S3,可以使用 NSURLSessionUploadTask 在后台会话中运行。

到目前为止效果很好。但是,一旦上传到 S3 完成,我需要调用我的 API 以将其状态更改为完成。

我使用 AWSS3 创建 S3 请求,然后根据此 SO answer将其复制到 NSURLSessionUploadTask 。这在前台和后台运行,并将文件 ok 上传到 S3。

现在这是我需要帮助的部分。我尝试使用 URLSession:task:didCompleteWithError 和 URLSessionDidFinishEventsForBackgroundURLSession 委托方法来调用我的附加 API 请求,我使用了标准数据任务和下载任务,它们似乎不会在后台触发请求,直到我再次打开应用程序。理想情况下,我希望他们立即开火。他们确实上传的火是在前台。我已经看到 Wunderlist 完全按照我在后台尝试做的事情,但不确定他们是如何做到的。

这是我到目前为止所拥有的......任何帮助/建议都会很棒,这让我发疯!:)

AppDelegate.h

编辑我也尝试了以下方法。任务像以前一样创建,当我恢复任务时仍然不会触发。

然后在视图控制器中

0 投票
0 回答
1127 浏览

ios7 - NSURLSessionDownloadTask 在位置 URL 处没有文件完成

NSURLSessionDownload我使用任务和NSURLSession后台配置启动了一堆下载。大多数情况下一切正常,但有时回调方法中location指定的位置没有临时文件。delegate它发生在模拟器和设备上。这是代码,但一切看起来都非常简单,就像他们拥有 SimpleBackgroundTransfer 示例一样。

另外,奇怪的是,当这个奇怪的事情发生时,没有NSURLSessionDelegate调用其他方法,只是URLSession:downloadTask:downloadTask:location位置 URL 没有文件(downloadTask.originalRequest实际上有一个有效的下载 URL 和 downloadTask 中响应的状态代码是 200)。
如果发生这种奇怪的事情,它会发生在所有预定的下载中,就像系统根本无法创建文件一样。URLSession:downloadTask:downloadTask:location被立即调用。
重新启动设备/模拟器似乎总是有帮助。重新启动应用程序永远不会有帮助。
有没有人经历过这样的事情?