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

ios - NSURLSession crash with JSON data parameter is nil while error is managed

这个问题已经在其他地方提到过,但解决方案是处理错误。在这里,我认为我正确地处理了我的错误(但听起来我错了......)。

我有一些奇怪的东西,我无法弄清楚。当我检查服务器是否没有响应(离线)而不是通过取回 JSON 对象时,我的应用程序崩溃了。在我的记忆中,这是在我处理 iOS 9.2 之前工作的。

使用异常断点,我可以看到它与创建字典时为“nil”的数据参数有关(我猜这是正常的,因为服务器处于脱机状态并且没有返回任何内容)但是应该通过管理错误来避免崩溃...在我的代码中似乎并非如此。

几行:

听起来if(错误)条件并不能防止崩溃......

任何人都可以帮助我吗?

谢谢!

0 投票
1 回答
1217 浏览

ios - NSURLSession 在第一次调用中不返回数据

一般来说,需要为网络实现一个类。这是一个接受 URL 并提供数据的类。所有这些都是为了不给额外的逻辑控制器打分。我遇到这样一个问题,第一次创建View的时候,数据不来。那是网络类:

我的主控制器中的方法 viewDidLoad:

我的日志说我,该数据返回零。注意,我在 SWRevealViewController 的帮助下在控制器之间切换。重新加载主视图控制器时,返回数据。我做什么?

在此处输入图像描述

0 投票
1 回答
41 浏览

ios - 如何指向具有自己的完成关闭的任务?ios迅捷

我正在使用任务发送请求,以这种方式:

我需要在恢复之前将任务推入队列。然后我需要在它完成后弹出它。我得到这个错误的问题:在它自己的初始值中使用的变量

我应该怎么办?是否可以创建一个任务,然后设置它的完成处理程序?

谢谢

0 投票
1 回答
331 浏览

ios - 如何串行执行多个 NSURLSessionDataTask?

就我而言,当应用程序启动时,我想使用NSURLSessionDataTask. 我为每个 API 提供了 3 种不同的方法,在每个方法中,都有一个NSURLSessionDataTask.

我想以使这 3 种方法串行执行的方式来塑造我的代码。因为,方法 B 取决于方法 A 的响应,方法 C 取决于方法 B 的响应。每个方法在得到 API 响应后也会做一些数据库操作。所以,我需要串行执行methodA,methodBmethodC.

我知道这是合乎逻辑的事情,但我想使用dispatch_semaphore_tordispatch_group_wait但我完全不知道如何将它们与NSURLSessionDataTask.

我试过这个:

上面的代码停留在第一种方法上。

0 投票
4 回答
11700 浏览

ios - 使用 NSURLSession 自定义 NSURLProtocol

我正在尝试实现本教程,该教程使用 NSURLConnection 实现自定义 NSURLProtocol。

https://www.raywenderlich.com/76735/using-nsurlprotocol-swift

它按预期工作,但现在 NSURLConnection 在 iOS9 中已弃用,我正在尝试将其转换为 NSURLSession。

不幸的是,它没有奏效。

我在 uiwebview 中加载一个网站,如果我使用 NSURLConnection 它加载并且一切都按预期工作,来自 webview 的所有 http 请求都会被捕获,但在使用 NSURLSession 时不会。

任何帮助表示赞赏。

这是我的代码

0 投票
1 回答
37 浏览

ios - iOS 网络数据缓存问题

我正在开发应用程序。它包括登录页面。登录后我收到响应 json。我用两个不同的帐户多次尝试登录。

让我们说帐户A& B。如果我在设备上构建并运行全新构建并使用 account 登录A。我得到了正确的回应。如果我注销并使用该帐户重新登录B。在这种情况下,我得到了 account 的旧响应A

如果我反之,问题仍然存在。Web 服务没有问题。

我需要知道 ios 中的响应缓存是否存在问题。我试图用NSURLConnection,NSURLSessionAFNetworking. 问题依然存在。

我已经为 android 设备实现了相同的功能。android上没有响应问题。

任何人都可以就这种情况提出任何建议。任何建议都受到高度赞赏。

0 投票
0 回答
32 浏览

ios - 为什么 NSURLSessionDataTask 写入磁盘,如何避免这种情况?

我已经设置了一个 NSURLSessionDataTask 并观察到,在通过调用启动任务时resume有时数据会写入磁盘。我用相同的数据做了几次完全相同的任务,有时它会显示出来,即已写入磁盘(但没有读取)。

尽管所有对象都在内存中处理,但为什么将数据写入磁盘?

如何避免写入磁盘?

0 投票
1 回答
281 浏览

swift - nsjsonserialization.jsonobjectwithdata 截断接收到的数据

我正在使用 NSURLSession 委托方式发出 http get 请求以从服务器获取 json 数据。我最终将在我的 NSURLSessionDataDelegate 中收到的 NSData 传递给模型对象以更新数组,如下所示:

一旦数据进入 updateGameList 函数,如果我尝试使用 NSJSONSerialization.JSONObjectWithData,就会发生奇怪的事情。如果我不尝试使用 NSJSONSerialization,而只是将 NSData 转换为字符串,那么它看起来就像我期望的正确响应,如下所示:

但是,一旦我尝试将 NSData 与 NSJSONSerialization.JSONObjectWithData 一起使用来创建 NSArray,它就会开始抛出错误,因为数据似乎在开始或结束时被截断,如下所示:

这是 updateGameList 函数,当我注释掉带有 JSONSerialization 代码的 do-catch 块时,dataString 会打印出正确的响应,当我取消注释它时,它会运行多次,几乎就像它正在尝试处理数据一样一次块而不是一次全部。如果我取出 .AllowFragments 选项,它会告诉我将其放入,当我放入时,它会导致 json 数据未正确开始或结束的真正错误。

0 投票
2 回答
746 浏览

ios - URL 超时的数据任务

我正在尝试访问一个网站。我正在使用dataTaskWithURL请求。

这是我的代码:

我还尝试在主块上运行此代码:

然而,这些都没有成功。我反复收到以下错误

错误域=NSURLErrorDomain 代码=-1001“请求超时。 ” UserInfo={NSUnderlyingError=0x7ff0a3f4c6e0 {错误域=kCFErrorDomainCFNetwork 代码=-1001“(null)”UserInfo={_kCFStreamErrorCodeKey=-2102, _kCFStreamErrorDomainKey=4}}, NSErrorFailingURLStringKey =我尝试访问的 URL ,NSErrorFailingURLKey=我尝试访问的 URL,_kCFStreamErrorDomainKey=4,_kCFStreamErrorCodeKey=-2102,NSLocalizedDescription=请求超时。})

我试过看这篇文章这篇文章。但是,我与他们并没有成功。该网站加载速度相当快。我该如何摆脱这个错误?

0 投票
1 回答
44 浏览

objective-c - NSURLSessionDataTask in appdelegate

I would call a NSURLSessionDataTask in appDelegate when the app is open from mail, so in this function

I tried but doesn't work, why??

I need to get a query from this function

}

Thank you