问题标签 [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 投票
0 回答
1746 浏览

ios - 具有多个 HTTP 请求的 NSURLSession

我想使用 Swift 在 Swift 中发送多个 HTTP 请求(一个接一个)NSUrlSession,我正在尝试登录一个网页,所以我需要发送一个 GET 请求并将 cookie 用于以下 POST 请求,然后使用该身份验证 cookie 来从站点获取我想要的数据(来自响应的简单字符串)。

所以我使用这个函数调用来发送请求:

但是我不想将任务放在任务 clousure 中,因为如果我有 100 个请求怎么办?我觉得必须有另一种方式,但我找不到任何使用超过单个请求的示例。

0 投票
2 回答
2048 浏览

swift - 在 Swift 中为 SOAP POST 从 NSURLConnection 迁移到 NSURLSession

我正在尝试从 NSURLConnection 转移到 NSURLSession 以获取 SOAP 帖子,但似乎与 NSURLSessionDataDelegate 有问题。

这是 NSURLConnection 中运行良好的旧代码:

此代码然后使用 NSURLConnectionDelegate,并按如下方式正常工作:

因此,该代码一切正常,仅供参考,您可以看到我过去所做的事情,以及 API 确实有效的事实!但是,如果我转而使用 NSURLSession 和 NSURLSessionDataDelegate ,那么我将无法使其正常工作。

所以这是新的代码:

我使用的代表是 NSURLSessionDelegate、NSURLSessionDataDelegate:

所以,当我运行代码时,我得到了输出:

“我在 NSURLSessionDelegate didReceiveChallenge” “是的,已授权”

所以它变得很好 didReceiveChallenge,它似乎正在授权 HTTPS 安全证书,但是没有进一步发生,它没有做任何其他事情,我希望它进入 didReceiveResponse 然后 didReceiveData,但没有进一步发生全部。

所以我被卡住了,我当然可以继续使用 NSURLConnection,因为它一切正常,但我想了解 NSURLSession,特别是我哪里出错了。因此,如果有人可以提供帮助,那就太好了。

谢谢

0 投票
2 回答
2172 浏览

ios - NSURLSession 委托 didCompleteWithError 未调用

我有以下实现NSURLSession

我已经实现了以下委托方法:

当收到委托时,上面的 while 循环的“已完成”变量设置为 1,didCompleteWithError表示存在网络故障等问题...

当网络关闭时,我不明白didCompleteWithErrorcallback,因此即使指定了 10 秒超时并且我的应用程序崩溃并给出内存警告,while 循环也不会退出。

我确实在所有场景中都正确接收了 didReceiveData、didReceiveResponse 回调。虽然它需要在此处设置 HTTPs,但尚未检查 didReceiveChallenge 回调。

所以,如果你能帮助我,我有以下问题要问:

1)为什么didCompleteWithError网络宕机时收不到回调?

2)考虑到没有网络问题,didCompleteWithError任务成功完成时是否收到回调?如果没有,什么回调表示任务完成,比如connectionDidFinishLoading使用时NSURLConnection

我在启动任务时在请求参数中使用了缓存策略。是不是因为这个,没有调用didcompletewitherror,而是应该实现缓存委托?

伙计们,请帮忙。我被困住了。

谢谢

0 投票
1 回答
1173 浏览

nsurlsessiondatatask - AFHTTPSessionManager 发布请求

我想向服务器发布请求。如果我使用 NSURLSessionDataTask,它工作正常。但在下面,我需要使用 AFNetworking,因为我的整个应用程序都在使用它。但是当我尝试使用 POST 方法在 AFHTTPSessionManager 中访问相同的服务时,它给了我请求超时。

下面是两个代码。

AFNetworking 套件版本:-

请帮助我以正确的方式实施它。

0 投票
1 回答
1014 浏览

ios - iOS Swift 下载许多小文件的最快方法

我正在编写一个 iPad 应用程序,它需要从服务器下载许多但相当小的 .json 和 .jpg 文件。

所以票价我这样做是这样的:

(我一直在使用 dataTaskWithURL)

这就是会话的设置方式:

是的,它工作得很好。我可以在 22 秒内下载 280 多个文件(.json 和 .jpg),这很不错,但对于用户来说,查看下载计数器需要很长时间。

计划是,拥有更多……所以我真的需要一种方法来更快地做到这一点。

如果需要,我可以提供更多我正在使用的代码。

提前致谢 :)

0 投票
1 回答
928 浏览

ios - 如何聚合来自多个 NSURLSessionDataTasks 的响应?

我正在尝试从将同时运行的多个 NSURLSessionDataTasks 中聚合数据。

如何使用在所有数据任务完成后调用的主回调或委托进行设置?

0 投票
3 回答
942 浏览

ios - 函数在 NSURLSession 之前完成 - dataTaskWithRequest 完成

我在 ViewDidLoad() 下调用了以下方法。我了解 session.dataTaskWithRequest 自动在后台线程中运行。也正因为如此,ViewDidLoad() 中这个方法后面的代码不会等待这个过程完成并开始执行。

有什么方法可以确保在执行其他方法之前完成后台线程?

问候,

0 投票
1 回答
93 浏览

tableview - NSJSONSerialization 没有被调用 - Objective C

我正在尝试使用从 JSON 对象中提取的数据数组填充 TableViewContoller 中的 TableViewCells。NSJSONSerialization 根本没有被调用。

我使用 DataTaskWithURL 尝试了各种方法。可悲的是,我在数组中找到了 0 个项目。提前感谢任何人的帮助!

0 投票
1 回答
297 浏览

php - Swift - 将字典发送到服务器时格式错误的数据

在服务器开发期间,我使用 cURL 来测试发布的数据。现在我正在客户端开发,从服务器返回的数据似乎格式不正确。

首先,我将向您展示我使用 cURL 发送的内容:

当我打印出接收到的数据时,我得到以下信息:

这是我所期望的。现在客户端:

NSData这是在上课之前的字典NSJSONSerialization

这是服务器的响应:

然后,当我尝试访问关键的“请求”时,服务器自然地回复了一个未定义的偏移错误。

这是将数据发送到服务器的函数。注意,我也检查了 HTTP 方法,它是“PUT”,正如预期的那样:

还值得注意的是我目前的代码(我在这里忽略了它)并成功地跳过了使用服务器证书的身份验证。

0 投票
1 回答
220 浏览

objective-c - 如何在使用 NSURLSession 接收到 HTTP 标头后立即获取消息正文?

我想使用NSURLSession从服务器接收 xml 流并立即在屏幕上显示每个 xml。

这是我的委托代码:

这段代码工作正常,除了一个问题。问题是,有时在接收流时,didReceiveData不会在didReceiveResponse之后立即被调用,它有时会接收多个 HTTP 消息,然后调用didReceiveData一次以传递它刚刚为我接收的所有消息。

有时接收多条消息可能需要一段时间,并且使我的应用程序无法实时显示 xml。

是否有任何配置或属性可以使其立即调用didReceiveData?我阅读了文档,但没有发现任何有用的信息。

谢谢一堆。

更新:

我尝试使用NSURLConnection来做同样的事情,它运行完美,没有这个问题。每个didReceiveData都会在didReceiveResponse后面立即调用。

如何使NSURLSessiondidReceiveDataNSURLConnection一样工作?