问题标签 [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.

0 投票
1 回答
564 浏览

cocoa-touch - 恢复应用程序后,挂起的 NSURLSession 后台下载任务会立即启动吗?

NSURLSession似乎是一个很棒的新 API。可悲的是,仍然缺乏文档。

我计划支持NSURLSession后台模式。我读到了,如果用户通过 Wifi 连接并且剩余电量充足,这些任务只会在 Apple 守护程序上下载。因此,如果我对一些任务进行排队,并且不满足上述条件,则该任务将一直等待,直到它们满足为止。但是如果用户打开应用程序并且数据丢失了怎么办?尽管缺少 wifi 或电池电量不足,挂起的任务会执行吗?我应该取消它们并将它们作为正在进行的数据任务启动吗?我知道该discretionary属性,但是一旦启动/恢复应用程序,在后台安排的任务会启动吗?

0 投票
1 回答
1186 浏览

ios - willSendRequestForAuthenticationChallenge 目的

我正在查看 Box Oauth2.0 视图控制器: https ://github.com/box/box-ios-sdk-v2/blob/master/BoxSDK/OAuth2/BoxAuthorizationViewController.m

他们有以下代码:

包含这样的代码的目的是什么?

在 webview 中显示 oauth2.0 流时是否有必要?

0 投票
1 回答
1925 浏览

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:

  1. Got a "time out" error in -URLSession:task:didCompleteWithError:.

  2. 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?

0 投票
1 回答
674 浏览

objective-c - 完成下载委托中的 NSURLSession 剩余后台时间

我正在使用NSURLSession后台下载服务。

如果我的应用程序已暂停并处于后台并且NSURLSessionDownloadTask已完成该NSURLSessionDownloadDelegate方法

被称为记录。

我观察到,每次调用委托方法时,从开始时的秒数到下载后的秒数都会[UIApplication sharedApplication].backgroundTimeRemaining减少。如果它到达应用程序崩溃,并显示“超过允许的时间有活动断言:”。3000

这意味着我必须处理完成的后台下载(解压缩、移动)的总时间是30几秒钟。这可能适用于几个文件,但如果下载包含大量或大的 zip 文件,则不适用。

这个时间间隔在任何 Apple 文档中都没有提到。这是NSURLSEssion框架的限制还是我实施错误?

谢谢克里斯蒂安

0 投票
4 回答
5647 浏览

ios - NSURLSession 和后台流上传

我在使用NSURLSession将照片从资产库上传到服务器时遇到了一些问题。

起初NSURLSession不支持流式上传。尝试使用它时出现异常:

这是一个例外:

这真的很奇怪,因为 Apple 的手册不包含任何关于仅uploadTaskWithRequest:fromFile:用于后台会话的信息。如果我想从资源库上传非常大的视频文件怎么办?我应该先将它保存到我的 tmp 目录吗?

看起来唯一的原因是uploadTaskWithRequest:fromFile:无论如何都要使用,对吧?但是我有一个问题,如果上传过程被中断并开始在后台上传下一部分,服务器如何知道现在正在上传文件的哪一部分?

我应该为此做点什么吗?以前,如果我想继续上传之前启动的部分文件,我会在 URL 请求中使用 Content-Range。现在我不能这样做 - 我必须在创建上传任务之前创建一个 URL 请求,并且看起来NSURLSession必须为我自动执行类似的操作?

有人已经这样做了吗?谢谢

0 投票
2 回答
10855 浏览

cocoa-touch - NSURLSession 取消任务

我使用以下配置创建新的 NSURLSession

按下按钮后,我试图停止所有当前的下载任务。

尽管如此,我还是在委托方法 didFinishDownloadingToURL 中得到了响应,并且我很确定在此之后不会创建新的会话或下载任务。如何阻止所有任务的发生?

0 投票
1 回答
3520 浏览

ios - NSURLSessionUploadTask 后台持续上传

当我的应用程序在后台时,我想使用NSURLSessionUploadTask.

使用适当配置NSURLSession的对象,排队后台上传的 API 是:

当上传完成时——成功或失败——我在后台得到这个回调:

在上述回调期间,我将另一个上传队列与
-uploadTaskWithRequest:fromFile:.

但是上传一些文件后,回调停止,上传也停止。

我是否缺少一些东西来保持上传?例如,我是否需要在这个回调中添加一些额外的代码来保持上传?

注意:我已经阅读了这个相关的 SO question,但它没有帮助。

0 投票
1 回答
891 浏览

ios - 仅在尚未下载的情况下,在后台以低优先级在 iOS 7 中下载批量文件

我的应用需要下载一批具有以下要求的文件:

  1. 批处理应该按顺序处理(绝不以同时下载文件为代价)。
  2. 如果应用程序关闭,下载应该在后台继续。
  3. 用户可能随时触发其他下载。这些下载应优先于批处理。
  4. 鉴于用户可能会触发批处理中任何文件的下载,如果文件已经下载,则不应再次下载。我应该能够在开始实际下载之前检查文件是否已经下载,或者将其从队列中删除。

这当然可以通过大量样板代码来实现(此处发布太多)。使用 iOS 7 全新NSURLSession和/或AFNetworking 2.0最简单的方法是什么?

0 投票
1 回答
2079 浏览

background - NSURLSession:通过后台传输上传资产

使用后台传输从图库上传资产的最佳方法是什么?

似乎uploadTaskWithRequest:fromData:不适用于NSURLSessioncreated with,backgroundSessionConfiguration因为它会导致异常:“由于未捕获的异常 'NSGenericException' 而终止应用程序,原因:'在后台会话中上传任务必须来自文件”。从异常描述来看,后台传输也不应该与流式上传任务一起使用。

很公平。uploadTaskWithRequest:fromFile:当您考虑上传磁盘上已有的数据时,首先想到的是。但是 NSURLSession 类参考告诉我们这个方法只适用于文件 url,但是当你获得资产的 url 路径时,它从“assets-library://asset/...”开始并且提供这个路径也不起作用。

因此,似乎剩下的唯一选择是将文件从资产库复制到临时目录中,并将其文件 url 提供给uploadTaskWithRequest:fromFile:. 但这没有任何意义,因为您已经在磁盘上保存了资产文件。我错过了什么吗?

更新:

在 Tech Talks 活动中与 Apple 工程师交谈,他确认后台 NSURLSession 仅支持文件 url。所以确实,您需要将资产库复制到一个临时目录中,并提供其文件 url 以uploadTaskWithRequest:fromFile:使用后台 NSURLSession 上传它。不过,这种行为将来可能会改变。

0 投票
1 回答
3006 浏览

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 的大部分要求?

我希望你能分享你的想法。

谢谢,

亲切的问候,

巴特舍恩