问题标签 [nsurlsession]
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.
cocoa-touch - 恢复应用程序后,挂起的 NSURLSession 后台下载任务会立即启动吗?
NSURLSession
似乎是一个很棒的新 API。可悲的是,仍然缺乏文档。
我计划支持NSURLSession
后台模式。我读到了,如果用户通过 Wifi 连接并且剩余电量充足,这些任务只会在 Apple 守护程序上下载。因此,如果我对一些任务进行排队,并且不满足上述条件,则该任务将一直等待,直到它们满足为止。但是如果用户打开应用程序并且数据丢失了怎么办?尽管缺少 wifi 或电池电量不足,挂起的任务会执行吗?我应该取消它们并将它们作为正在进行的数据任务启动吗?我知道该discretionary
属性,但是一旦启动/恢复应用程序,在后台安排的任务会启动吗?
ios - willSendRequestForAuthenticationChallenge 目的
我正在查看 Box Oauth2.0 视图控制器: https ://github.com/box/box-ios-sdk-v2/blob/master/BoxSDK/OAuth2/BoxAuthorizationViewController.m
他们有以下代码:
包含这样的代码的目的是什么?
在 webview 中显示 oauth2.0 流时是否有必要?
upload - iOS using NSURLSessionUploadTask to upload file but didn't send httpbody
I want to upload a big file using NSURLSessionUploadTask
with the fileUrl API. The following code is what I wrote to upload a big file. I found these problems:
- Got a "time out" error in
-URLSession:task:didCompleteWithError:
.
No http body found in the sent package (by using wireshark). Here is my code:
/li>
anyone know where did I miss? Thank you very much!!
I am wondering about that the fileURL means a file including some post data and the uploaded file, am I right?
or just a file like an video for upload?
objective-c - 完成下载委托中的 NSURLSession 剩余后台时间
我正在使用NSURLSession
后台下载服务。
如果我的应用程序已暂停并处于后台并且NSURLSessionDownloadTask
已完成该NSURLSessionDownloadDelegate
方法
被称为记录。
我观察到,每次调用委托方法时,从开始时的秒数到下载后的秒数都会[UIApplication sharedApplication].backgroundTimeRemaining
减少。如果它到达应用程序崩溃,并显示“超过允许的时间有活动断言:”。30
0
0
这意味着我必须处理完成的后台下载(解压缩、移动)的总时间是30
几秒钟。这可能适用于几个文件,但如果下载包含大量或大的 zip 文件,则不适用。
这个时间间隔在任何 Apple 文档中都没有提到。这是NSURLSEssion
框架的限制还是我实施错误?
谢谢克里斯蒂安
ios - NSURLSession 和后台流上传
我在使用NSURLSession
将照片从资产库上传到服务器时遇到了一些问题。
起初NSURLSession
不支持流式上传。尝试使用它时出现异常:
这是一个例外:
这真的很奇怪,因为 Apple 的手册不包含任何关于仅uploadTaskWithRequest:fromFile:
用于后台会话的信息。如果我想从资源库上传非常大的视频文件怎么办?我应该先将它保存到我的 tmp 目录吗?
看起来唯一的原因是uploadTaskWithRequest:fromFile:
无论如何都要使用,对吧?但是我有一个问题,如果上传过程被中断并开始在后台上传下一部分,服务器如何知道现在正在上传文件的哪一部分?
我应该为此做点什么吗?以前,如果我想继续上传之前启动的部分文件,我会在 URL 请求中使用 Content-Range。现在我不能这样做 - 我必须在创建上传任务之前创建一个 URL 请求,并且看起来NSURLSession
必须为我自动执行类似的操作?
有人已经这样做了吗?谢谢
cocoa-touch - NSURLSession 取消任务
我使用以下配置创建新的 NSURLSession
按下按钮后,我试图停止所有当前的下载任务。
尽管如此,我还是在委托方法 didFinishDownloadingToURL 中得到了响应,并且我很确定在此之后不会创建新的会话或下载任务。如何阻止所有任务的发生?
ios - NSURLSessionUploadTask 后台持续上传
当我的应用程序在后台时,我想使用NSURLSessionUploadTask
.
使用适当配置NSURLSession
的对象,排队后台上传的 API 是:
当上传完成时——成功或失败——我在后台得到这个回调:
在上述回调期间,我将另一个上传队列与
-uploadTaskWithRequest:fromFile:
.
但是上传一些文件后,回调停止,上传也停止。
我是否缺少一些东西来保持上传?例如,我是否需要在这个回调中添加一些额外的代码来保持上传?
注意:我已经阅读了这个相关的 SO question,但它没有帮助。
ios - 仅在尚未下载的情况下,在后台以低优先级在 iOS 7 中下载批量文件
我的应用需要下载一批具有以下要求的文件:
- 批处理应该按顺序处理(绝不以同时下载文件为代价)。
- 如果应用程序关闭,下载应该在后台继续。
- 用户可能随时触发其他下载。这些下载应优先于批处理。
- 鉴于用户可能会触发批处理中任何文件的下载,如果文件已经下载,则不应再次下载。我应该能够在开始实际下载之前检查文件是否已经下载,或者将其从队列中删除。
这当然可以通过大量样板代码来实现(此处发布太多)。使用 iOS 7 全新NSURLSession
和/或AFNetworking 2.0最简单的方法是什么?
background - NSURLSession:通过后台传输上传资产
使用后台传输从图库上传资产的最佳方法是什么?
似乎uploadTaskWithRequest:fromData:
不适用于NSURLSession
created with,backgroundSessionConfiguration
因为它会导致异常:“由于未捕获的异常 'NSGenericException' 而终止应用程序,原因:'在后台会话中上传任务必须来自文件”。从异常描述来看,后台传输也不应该与流式上传任务一起使用。
很公平。uploadTaskWithRequest:fromFile:
当您考虑上传磁盘上已有的数据时,首先想到的是。但是 NSURLSession 类参考告诉我们这个方法只适用于文件 url,但是当你获得资产的 url 路径时,它从“assets-library://asset/...”开始并且提供这个路径也不起作用。
因此,似乎剩下的唯一选择是将文件从资产库复制到临时目录中,并将其文件 url 提供给uploadTaskWithRequest:fromFile:
. 但这没有任何意义,因为您已经在磁盘上保存了资产文件。我错过了什么吗?
更新:
在 Tech Talks 活动中与 Apple 工程师交谈,他确认后台 NSURLSession 仅支持文件 url。所以确实,您需要将资产库复制到一个临时目录中,并提供其文件 url 以uploadTaskWithRequest:fromFile:
使用后台 NSURLSession 上传它。不过,这种行为将来可能会改变。
ios - 我应该如何在 backgroundConfiguration 中使用 NSURLSession 将多个文件块上传到 Amazon S3 ( iOS7 )
目前我正在做一个项目,我们需要将一组照片和视频发送到 S3 亚马逊服务器。流程是这样的:
-首先我们要求api开始传输,然后我们得到一个id(api调用)
-transfer id -> 在 api 请求文件上传 -> file_id 作为响应(api 调用)
-file id -> 在 api 请求块上传 -> 亚马逊数据作为响应(api 调用)
-upload chunck -> 在 NSURLSession 中配置在 backgroundConfiguration 中(每次上传 5mb)
-在最后一个chunck-upload(api调用)之后完成文件上传
- 最后一次文件上传后完成传输(api调用)
我们需要使用 api 并对其进行调用.. 当应用程序在后台运行时也是如此。
所以我想的是使用可以在后台上传文件然后运行完成块的AFNetworking 2.0。
在该完成块中,代码如下:
所以难点是我们喜欢执行代码,也尝试在iOS7的后台做一个上传任务
当应用程序连接到调试器(Xcode)时,上面的示例工作。但没有它会在控制台中提供此错误:
所以那不酷:(
有没有办法运行代码并在后台上传文件..??你有这方面的经验吗??还是我们对 iOS7 的大部分要求?
我希望你能分享你的想法。
谢谢,
亲切的问候,
巴特舍恩