问题标签 [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 回答
2572 浏览

ios - NSURLProtocol 可以与 NSURLSession {upload, download}dataTask 一起使用吗

我有一个自定义的 NSURLProtocol

如何让这个自定义的 NSURLProtocol 支持 {upload, download}dataTask?

0 投票
1 回答
1512 浏览

ios - NSURLSessionDownloadTask - 串行下载多个文件

串行下载文件列表的最佳做法是什么NSURLSessionDownloadTask

例如,是否最好NSURLSession在上一次下载完成后开始新的?

然后在委托完成后-startDownload再次调用不同的请求。

这种链接下载的方法是否会导致堆栈随着每个后续请求而增长,因为-startDownloadWithRequest在上一次下载完成时调用 in 发生?

我搜索了 SO 和其他网站,但找不到使用NSURLSessionDownloadTask.

0 投票
0 回答
298 浏览

xcode - Xcode提示nsurlsessiondownloadtask消耗大量内存

我正在使用 NSUrlSession 和 NSUrlSessionDownloadTask 将文件从服务器下载到我的应用程序。

当我从 Xcode 运行我用 Swift 编写的应用程序并查看内存消耗量表时,随着文件的下载大致与获取的数据相对应,消耗的内存稳步增加。

因此,当下载 1 GB 的文件时,Xcode 表明我的应用程序正在使用超过 1 GB 的内存。

这完全没有意义,因为下载的数据保存在磁盘上而不是内存中。

此外,如果报告的内存使用情况正确,应用程序将运行而不会崩溃,这似乎是不可能的。

有没有其他人遇到过这个问题?

0 投票
2 回答
1824 浏览

ios - 具有无效简历数据的 NSURLSession

[NSURLSessionConfiguration defaultSessionConfiguration]用来配置我的 url 会话。

cancelByProducingResumeData:我通过调用生成恢复数据来暂停任务,并将其保存到磁盘。当我想重新启动任务时,我调用downloadTaskWithResumeData:. 在我重新启动应用程序之前它运行良好。

暂停任务后,我终止了该应用程序。然后我再次启动我的应用程序,并调用downloadTaskWithResumeData,我发现简历数据无效。

我将简历数据解析为 NSDictionary 并NSURLSessionResumeInfoLocalPath得到

"/private/var/mobile/Containers/Data/Application/5DD071C3-9D5E-4D76-9F74-57B6C92445CB/tmp/CFNetworkDownload_IUI6kg.tmp". 我尝试访问此文件,但它不存在。

我的问题是如何在重新启动应用程序后使用恢复数据继续下载任务。

谢谢。

0 投票
0 回答
421 浏览

ios - NSURLSessionDownloadDelegate 使用 UIImage 生成错误

我最近一直在开发一个简单的 iOS 应用程序,它使用 NSURLSessionDownloadTask 从 Web 服务器下载图像。下载任务完美执行,但处理接收到的图像有点奇怪。尽管会话没有返回任何错误并且URLSession(session: NSURLSession, downloadTask: NSURLSessionDownloadTask, didFinishDownloadingToURL location: NSURL)调用了委托方法,但图像似乎为零。然后应用程序崩溃,给出典型'fatal error: found nil when unwrapping an optional value'的就行了var image: UIImage = UIImage(data: NSData(contentsOfURL: location)!)!。有任何想法吗?

0 投票
0 回答
272 浏览

ios - SSL 和 NSURLSessionDownloadTask 出错

我有一个 NSURLSessionDownloadTask 可以正常工作一段时间,但今天它停止工作并调用了该func URLSession(session: NSURLSession, didReceiveChallenge challenge: NSURLAuthenticationChallenge, completionHandler: (NSURLSessionAuthChallengeDisposition, NSURLCredential!) -> Void)方法。如果我尝试使用 SSL 下载图像,它似乎会尝试挑战,如果不使用 SSL,它工作得很好。我不确定如何处理这个问题,因为我不确定我会为挑战提供什么凭据——这对于 iOS 上的网络来说是相当新的。我应该如何进行?

安慰:

注意:我已经有一段时间没有更改我的 Web 服务器上的设置了,SSL 证书仍然有效。

0 投票
1 回答
365 浏览

ios - URLSessionDownloadTask 启动时调用的委托方法是什么?

协议中有三种方法NSURLSessionDownloadDelegate

didFinishDownloadingToURL下载任务完成时调用。但是下载任务开始时调用的方法是什么?

0 投票
1 回答
8922 浏览

ios - 从完成处理程序中获取来自 NSURLSession DownloadTaskWithRequest 的数据

所以我很难理解一些事情。这是我对 NSURSession 的理解:

  • 一般来说,我有 2 个选项(据我所知)DataTask(ex dataTaskWithRequest)DownloadTask(ex DownloadTaskWithRequest ) - 使用他们的委托方法,使用完成处理程序,不能两者都做。我已经设法使用 dataTaskWithRequest 接收数据,如下所示:

    /li>

它完美地工作。问题是我需要将数据下载到磁盘而不仅仅是内存(我正在下载图像)。因此,我对DownloadTaskWithRequest + 他的完成处理程序进行了相同的尝试,我注意到他采用的参数与第一个参数相同,即NSURLDataTaskWithRequest中的NSData,因此它使事情变得非常简单。前任。

我的问题是:我知道我可以使用以下方法从 Location(NSURL) 中获取数据:

1)contentsOfURL会发出另一个“请求”来获取这些数据,还是他在本地工作?如果它再次发送请求,我该如何避免它?

2)这是正确的方法(我知道我可以使用委托方法,我不喜欢)?

3)如何在本地存储我下载的数据(在回答第 1 和第 2 个问题后),并在需要时访问它?

感谢你们!!抱歉新手问题,我真的很关心效率 - 谢谢!

0 投票
1 回答
965 浏览

ios - 如何将 cookie 传递给 NSUrlSession?

对于 iOS,我编写了一个自定义委托和NSUrlSession. 它适用于 Http url。但是,当我尝试从经过身份验证且需要传递 Cookie 的 HTTPS 源下载图像资源时,下载失败并显示NSUrlErrorCode-1013 或 -1002。

因此,在NSUrlSessionDownloadDelegate我已经实现了该DidReceiveChallenge方法但目前没有在那里传递任何东西,因为我想从我的初始登录中传递 cookie,如上所述。

NSUrlSession对整个应用程序使用共享会话,但我的初始登录 API 是使用RestSharp.RestClient它获取我可以在整个应用程序中使用的 cookie 完成的。

所以我的问题是如何将 cookie 传递给NSUrlSession

0 投票
1 回答
823 浏览

ios - 将文件从目录加载到 UIIMAGE 不起作用

因此,我正在使用 DownloadTask 下载图像,然后将图像保存在缓存目录中,并命名为我自己使用的名称:

如果我打印文件URL,它会给我:file:///var/mobile/Containers/Data/Application/A5F342C0-DFFA-49C4-92C1-3A0326A8C2D2/Library/Caches/1806.png

而不是我尝试加载它->

它不起作用..我看到有人说串行部分可能会随着每次构建而改变,所以我也尝试了这个:

也不行,有什么想法吗?