问题标签 [nsurlsessiondatatask]

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 回答
48 浏览

ios - NSDictionary 没有及时填充

我正在通过 ping 服务器以获取 JSON 文件,然后检查它的对来实现用户名/密码检查。当我检查它时,我userDictionary的没有填充。我假设这是因为NSURLSession它是异步的,只是在我需要的时候没有取回数据。在我的ServerCommunicationModel,我有:

然后在视图控制器中:

0 投票
1 回答
582 浏览

ios - NSURLSession : 设置请求超时 > 75 秒 [服务器无法访问]

我有一个发布请求,需要使用NSURLSession. 由于某些要求,我必须将超时设置为 230 秒。所以这里的想法是,NSURLSession应该等待 230 秒,直到它将任务声明为超时问题。

我做了一些实验——

  1. 我设置了一些任意的 10 秒来检查超时问题,工作正常。
  2. 我将 50 秒设置为超时,工作正常。
  3. 我设置了 60 秒(这是默认超时),它又可以正常工作了。
  4. 我将 75 秒设置为超时,它也可以正常工作。
  5. 但是,当我将76设置为超时时,请求会在75 秒内超时
  6. 我将100 秒设置为超时,但请求在75 秒内再次超时。
  7. 我将200 秒设置为超时,请求在75 秒内再次超时。

那么是否有一些未记录的值,例如可用的最大超时时间为 75 秒?

我以两种方式设置超时

  1. 使用timeoutInterval属性NSMutableURLRequest
  2. 使用defaultSessionConfiguration属性,timeoutIntervalForRequest以及timeoutIntervalForResource

我曾经发布dataTaskWithRequest过服务。

所以最小值在确定超时时在所有三个属性之间生效。如果它小于 75 秒,它工作正常。但如果大于 75 秒,它就会忽略它。

请告诉我,什么问题?是 75 秒是分配给超时的最高时间,或者我在这里遗漏了什么。

PS 我正在主线程中执行任务并在 iOS 9.2 中进行调试。为了清楚起见,我正在检查服务器无法访问时的超时

0 投票
0 回答
104 浏览

ios - 使用 NSURLSessionDataTask,我可以继续下载文件,即使用户在退出应用程序后返回?

假设,我正在使用NSURLSessionDownloadTaskor下载一个 300 MB 的文件NSURLSessionDataTask(目前,我不知道在我的情况下哪个是最佳选择)。用户退出应用程序或应用程序在下载 250 MB 时突然崩溃。下次,当用户打开应用程序时,我将不得不从 250 MB 恢复下载。

我已经使用NSURLSessionDownloadTask. 但是,如果我们使用,在下载完成之前NSURLSessionDownloadTask我们无法访问临时文件的 (并且我们会将这个临时文件移动到其永久的最终位置)。NSURLdidFinishDownloadingToURL

我开始知道,我将不得不使用 aNSURLSessionDataTask而不是 a DownloadTask,然后使用委托方法NSURLSessionDataDelegate

这将允许我在收到数据时访问它。但是,我不知道我现在将如何管理事情。我想要一种方法,以便我可以在上面的委托中附加数据并将其写入磁盘的某个位置。第二个问题,我怎么知道只能从这里开始下载数据(即从 250 MB 开始)

真的可行吗?还是只有App处于活动状态才可行?

我对这个问题很绝望。

0 投票
1 回答
181 浏览

c++ - 将字符串发布到 Web 服务器,获取响应

我有一个很长的 base64 编码文本字符串。大约 1024 个字符。从我的 Objective C 代码中,我想将它发送到我的 PHP 脚本,让它转储到日志中,然后返回一个“OK”响应。我尝试了这个食谱示例,但它只有一个上传和下载示例(不是两者结合),它甚至不适用于我的情况。

如果我知道如何,我愿意将其切换为 C++ 解决方案。

Objective C 客户端代码(命令行客户端)

PHP Web 服务器代码

0 投票
1 回答
711 浏览

ios - NSData 返回 0 个字节

我正在尝试做一个简单的 POST 请求。然而,在 chrome 和 iOS 模拟器中的 POSTMAN 插件中,结果似乎有所不同。

这是来自 POSTMAN 的快照:

在此处输入图像描述

在此处输入图像描述

如您所见,我在 retun 中获得了 JSON 数据。

这是我执行 POST 请求的代码:

当我尝试在调试器中打印值时,我得到

JSON作为nullNSData作为0 bytes。但我明白了status code as 200这是成功的。

这是我得到的回复:

为什么我将 NSData 设为 0 字节?

0 投票
1 回答
743 浏览

ios - 在 NSURLProtocol 中使用 NSURLSession

我正在尝试使用 NSURLSession 为 http:// 和 https:// 连接创建一个透明的 NSURLProtocol。然而,目前,即使完成处理程序正在运行,应用程序 (UIWebView) 的 URL 请求也会返回空白。有人有什么想法吗?代码如下:

0 投票
1 回答
70 浏览

objective-c - 作为获取 HTTP 请求的结果,从 JSON 映射 NSDictionary

我有NSDictionary作为结果的对象NSJSONSerialization,它有一个名为列表的字典数组的子项。看看我的 json 结果:

我还为项目(列表的子项)创建了一个类模型。

我还创建了它的初始化程序

我已经创建了一个列表项数组 ( NSDictionary),我的问题是我想将它们映射到我的类中,以便创建列表项的实例。那么如何将数组中的项目转换为我的项目类? 我应该迭代数组的每个项目并调用该初始化吗?或任何优雅的方法来做到这一点?

附加问题

我对 iOS 开发比较陌生。我只想解析我的请求结果。是否有任何提示可以获取一些请求并将其结果分配给数据源一个表视图(数组)?这是我的获取方法:

0 投票
1 回答
356 浏览

ios - 当我使用 NSURLSessionDataTask 下载任务时,进度条无法正常工作?

当我开始使用 NSURLSessionDataTask 下载文件时,进度有一段时间无法正常工作。然后在下载完成后,只有进度条显示为全蓝色。

我的代码

这些是我用来实现的代码。

0 投票
1 回答
122 浏览

ios - 如何使用 NSURLSessionDataTask 添加暂停和取消下载一个文件的动作?

我正在使用这种方法从给定的 URL 下载任何文件。我想在下载时添加暂停和恢复功能。

但是这些代码不起作用!

0 投票
3 回答
817 浏览

ios - 如何等待异步调用完成

我正在使用Spotify API运行三个 API 调用,以获取以下数据并将它们存储到我的Artist对象中:

  1. 艺术家。
  2. 那个艺人的专辑。
  3. 艺术家每张专辑的曲目。

完成后,我想将对象传递给不同的视图控制器。它看起来像这样:(NSURLSession如果必要的话可以在那里发布所有代码)