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

ios - NURLSession 带有块的批处理请求。帖子参数已更改

这个问题是,如果我调用此方法两次传递不同的request.HTTPBodydataTask从第二次调用中获取noteDataString,用于第一次和第二次调用。

0 投票
4 回答
2989 浏览

ios - NSURLSessionDataTask 超时后续请求失败

我正在创建一个NSMutableRequest

超时设置为 10 秒,因为我不希望用户等待太久才能获得反馈。之后,我创建了一个NSURLSessionDataTask

问题是服务器进入网关超时并且需要很长时间。我收到超时错误并向用户提供反馈,但是由于超时错误,以下所有 API 调用都以相同的方式失败。阻止它的唯一方法是终止应用程序并重新开始。超时错误后我应该做些什么来终止任务或连接?如果我没有设置超时并且我等到我从服务器收到错误代码,那么以下所有调用都可以正常工作(但是用户等待了很多!)。

我试图取消任务:

0 投票
3 回答
306 浏览

ios - 使用信号量从异步调用中返回一个值

我需要用来NSURLSession拨打网络电话。基于某些事情,我收到响应后,需要返回一个NSError对象。

我正在使用信号量使异步调用同步运行。问题是,错误在调用内部正确设置,但是一旦信号量结束(之后

dispatch_semaphore_wait(信号量,DISPATCH_TIME_FOREVER);

),则err变为 nil。

请帮忙

代码:

0 投票
2 回答
605 浏览

ios - 如何从服务器中删除 json 对象?

我编写了一个从服务器获取 JSON 形式的食谱并将其呈现到 UItable 中的代码。

该服务器是用 Ruby 编写的。现在我想写一个删除食谱的请求。这是我的服务器的说明。它说我应该使用以下 curl 删除食谱:

删除食谱 DELETE: /recipes/:id 在 Curl 中它会是这样的:

我想实现删除方法。事实上,我知道我需要实现以下方法。

有谁知道我该如何实现删除方法?

0 投票
1 回答
10640 浏览

ios - HTTP 数据任务 (NSURLSessionDataTask) 的 NSURLSession 是在后台线程中运行还是我们必须提供队列?

我现在开始使用它NSURLSessionNSURLConnection因为它是 Apple 提供的一种新的优雅的 API。以前,我曾经将调用NSURLRequest放在GCD块中以在后台执行它。以下是我过去的做法:

现在,这是我的使用方式NSURLSession

我想知道,我的请求会在后台线程本身上执行,还是我必须以与我一样的方式提供自己的机制NSURLRequest

0 投票
2 回答
406 浏览

nsurlrequest - NSURLRequest 超时值会覆盖 NSURLSessionConfiguration timeoutIntervalForRequest 值吗?

我正在创建一个timeoutIntervalForRequest配置 = 120 秒的 NSURLSession 对象。在此之后,我正在创建一个NSURLSessionDataTask对象并调用该方法dataTaskWithRequest:completionHandler。这里一个输入参数是 a NSURLRequest。同样,当我创建一个 NSURLRequest 时,我可以指定一些参数,例如 timeout、cachePolicy 等。但是这些在我创建NSURLSessionConfiguration. 因此,如果我对 a 使用不同的值NSURLRequest,这些值会覆盖NSURLSessionConfiguration值吗?

0 投票
0 回答
998 浏览

ios - 当应用进入后台时继续 NSURLSession 数据任务

我有一个应用程序从我的服务器检索 JSON 数据并将其输入到我的核心数据模型中。我的这个工作相当不错,减去了一些EXC_BAD_ACCESS我还没有弄清楚的随机错误问题。在此 dataTask 期间,它可以检索大量数据,因此可能需要一段时间才能完成。

我正在寻找一种让用户暂停应用程序的方法,dataTask 将继续检索数据。我看到 NSURLSession 有一个后台模式,但看到它只支持上传和下载任务。

有没有办法支持这一点?

我的 dataTask 功能:

0 投票
1 回答
604 浏览

ios - NSURLSessionDataTask 取消和核心数据

我有 NSURLSession,它从服务器下载新的用户配置文件,然后为每个配置文件下载照片数组,然后存储在 Core Data 中。每次用户到达此屏幕时,我都会停止下载任务,清除核心数据,然后再次填充。问题是,cancel() 函数是异步的,所以它在我清除核心数据后设法保存一些配置文件。此外,由于数据任务取消,这些配置文件可能没有一些数据。那么,问题来了——如何正确完成下载任务,然后清除核心数据?提前致谢。

0 投票
1 回答
667 浏览

unit-testing - OCMock - [NSURLSessionDataTask 响应] iOS 9 中无法识别的选择器崩溃

问题

在我们的许多单元测试中,我们使用 OCMock 模拟对象。作为我们测试代码如何响应服务器响应的一部分,我们创建了一个 NSURLSessionDataTask 对象,然后尝试在其上使用“response”属性。

情节变厚了

在 iOS 9 之前,测试运行良好。该属性在 iOS 9 上应用的正常回调流程中也能正常工作。

然而,在 iOS 9 测试版中,测试在运行时崩溃,并出现“无法识别的选择器发送到实例”错误。该属性存在于框架标头中,并且未在文档中标记为已删除。

此示例代码说明了该问题:

一种理论

似乎类的直接实例化不再在运行时提供属性。该属性似乎@dynamic是在运行时使用不同的实例化路径生成的属性。

问题

如何在单元测试 OCMock 对象中以与在 iOS 8 上运行单元测试向后兼容的方式解决此问题?

更新 1

将 OCMock 更新到最新版本 (3.1.5) 并不能解决问题。

对于其他上下文,这是我们如何使用NSURLSessionDataTaskOCMock。测试在第三行失败。

0 投票
1 回答
255 浏览

json - 将 NSURLSession 响应返回给它的调用函数

我为使用 NSURLSession 编写了以下两个函数。

我正在调用 performPost 函数,如下所示:

输出如下:

查看 performPost 函数的输出后,我可以说首先执行 pritln 函数,但它比 performPost 调用晚。

如何首先在 performPost 函数中设置 result 的值,然后在 performPost 函数完成后打印其值。

有可能吗?