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

ios - NSURLSessionDataTask 调用在目标 c 中不起作用?

单击“可操作通知”按钮后,当应用程序未运行时,我正在执行以下代码。我启用了后台模式,远程通知。

//代表

(我在这里展示的演示服务器 url 不是实际的)

我们可以在应用挂起或关闭时使用 NSURLSessionDataTask 执行后台任务吗?

此代码非常适用于服务器 URL ex。https://211.23.34.234/engine/auth/tx

但是当我将服务器 URL更改为https://demo.tes.com/engine/auth/tx时 不起作用。

NSURLSessionDataTask 有什么问题?

这是由于静态 IP 211.23.34.234 造成的吗?为什么相同的代码不能与https://demo.tes.com/engine/auth/tx一起使用?(此服务器 url 可以动态更改)任何帮助将不胜感激。

如何解决这个问题?

注意::将代理设置为 NSURLSessionDataTask 的“nil”将适用于https://demo.tes.com/engine/auth/tx服务器,但不适用于https://211.23.34.234/engine/auth/tx

如何让它在两台服务器上工作?

0 投票
2 回答
535 浏览

ios - 如何从 NSURLSessionDataTask 获取 NSDictionary

因此,我尝试将 dataFetched 作为全局变量,这样我就可以在我的 .m 文件周围访问它,并使其可供其他 .m 文件访问,但是当我尝试NSLog从其他 .m 文件访问 dataFetched 时,它会输出(null)。无论如何,我可以在需要数据的其他 .m 文件中访问数据吗?

0 投票
1 回答
429 浏览

ios - iOS 9+ Testflight 蜂窝数据不工作

我有一个用 Swift 2 编写的移动 iOS 应用程序。在应用程序内部,通过调用我们的服务器

我有 3 台带有蜂窝数据的 iPad。1个内部,我可以访问并可以连接到调试器。2 外部我无法访问,必须提出问题才能了解正在发生的事情。

内部 iPad 可以在 WiFi 和蜂窝网络上与 build X 一起使用,我的意思是请求通过并很好地联系服务器。

外部 iPad 可通过 WiFi 工作,但不能通过蜂窝网络工作。

我们已经尝试过

  • 确保特定应用的移动数据已开启和开启
  • 切换飞行模式
  • 重置网络
  • 重启设备
  • 确保设备在dataTaskWithRequest失败时确实有连接。

关于这里可能发生的事情的任何想法?有没有遗漏的设置?我错过了 info.plist 中的设置(为什么 1 有效)?

0 投票
0 回答
574 浏览

ios - NSURLSessionDataTask 内存泄漏

我正在尝试用 NSURLSessionDataTask 做简单的事情来从服务器获取一些数据。以前我使用 NSURLConnection 来获取该数据,但想将我的代码移动到 NSURLSessionDataTask。所以这里的代码

它工作得很好,我也得到了输出。但是当我在仪器中运行相同的代码时,我得到以下泄漏仪器输出

0 投票
1 回答
222 浏览

objective-c - NSNotification 未在 NSURLSession dataTaskWithRequest 中触发:

我正在尝试将我的 Obj-C 类之一的一部分转换为能够在 iWatch 上运行,为此,我必须使用 NSURLSession dataTaskWithRequest: 而不是 NSURLConnection sendAsynchronousRequest: 这似乎没有问题(表示 XML 已正确加载和解释)但在我的原始代码中,我为主程序触发了几个 NSNotification 以实现一些可见的修改。

似乎在 NSURLSession completionHandler 内部,它不再起作用了。

这是原始代码:

现在固定版本如下所示:

疯狂的是,这两个通知都没有使用第二种方法发送/接收,它在第一个版本中运行良好。

同样,我在另一种相同的情况下有一个计时器调用,如下所示:

再一次,它使用 NSURLConnection 工作,但不在 NSURLSessionDataTask 内......

你能帮我解决这个问题吗?

非常感谢。

0 投票
2 回答
988 浏览

ios - 使用 NSURLSession 上传多张图片

我正在尝试上传用户选择的图像数组。它们被base64编码。我收到来自服务器的空响应。下面是我的代码。

我正在使用QBImagePickerController从委托获取图像。我有一个NSMutableDictionary作为正文内容的NSMutableURLRequest.

这里是NSMutableURLRequest

我收到服务器响应代码为 500 和来自服务器的空响应。我都试过了NSURLSessionDataTaskNSURLSessionUploadTask。任何帮助都会有好处!

0 投票
1 回答
416 浏览

json - void 函数中的意外非 void 返回值 - 来自 dataTask 的 JSON 数据(带有:URL) - (Swift 3.0)

我正在用 Swift 3 构建一个 iOS 应用程序,它应该与我自己构建的 JSON Rest Api 进行通信。该应用程序将从 Api 获取各种内容,但现在我需要它做的就是通过握手功能检查 Api 的可用性。

这是我设置的 dataTask,它运行得很好(当我打印 jsonResult 时,我收到“欢迎!”消息如预期的那样。问题是我希望我的握手函数返回 true 或 false(所以我如果情况为假,则可以发出警报。)当我尝试在 if 语句中设置 return true 或 false 时,我收到错误:Unexpected non-void return value in void function。

我的问题是:如何从 dataTask 中返回数据,以便在握手函数中对其进行检查?我对 Swift 很陌生,所以感谢所有帮助:)

下面是整个班级:

}

0 投票
1 回答
587 浏览

ios - NSURLSession.sharedSession().dataTaskWithRequest 不工作

我现在正在开发一个小应用程序,我需要在其中连接到一些网站以获取一些信息。

这是我制作的函数,它在 90% 的时间里都能满足我的需求。

虽然有时我遇到了问题,但我不知道为什么。例如,下面是工作用例 (RSC = 200) 和非工作用例 (RSC = 404) 的调试器控制台中的跟踪:

按预期工作:

没有按预期工作:

我该怎么做才能使第二个案例起作用?我需要看哪里?

0 投票
1 回答
608 浏览

ios - NSURLSession HTTP/2 内存泄漏

这个我的测试用例指出,当使用带有 HTTP/2 连接的 NSURLSession 时存在内存问题。

test1:iOS 9. HTTP/2 服务器

我使用 NSURLSession 将 10M 文件上传到 HTTP/2 服务器,如果文件上传完成一切正常,但如果我在完成之前取消上传任务,10M 将永远不会释放。

test2:iOS 9. HTTPS1.1 服务器

我用https1.1文件服务器测试同样的代码,我取消上传任务还是没有,一切正常,内存恢复正常。(10M数据释放)

test3 iOS 8. HTTP/2 服务器

这种情况一切正常。(NSURLSession 没有与 HTTP/2 进行协议协商)

所以,即使我使用 NSURLSession 有一些不合适的地方,NSURLSession 的性能在 HTTP/2 上也不正常。

除了内存问题,当使用带有 HTTP/2 的 NSURLSession 上传文件时,进度段大小很大(一次回调可能 2M 'didSendBodyData')

我也读过这个页面。SSL 可能会缓存一些东西,但不应该缓存整个文件。(当我取消任务或请求超时时,10M 文件大小的内存泄漏)

任何人都知道导致问题的原因,可以给我一些帮助。谢谢。


问题更新0912:添加测试项目链接

测试项目:https ://github.com/upyun/swift-sdk/tree/testleak

0 投票
2 回答
3781 浏览

ios - dataTaskWithRequest:completionHandler: 已弃用

我在用着AFNetworking在我的项目中使用从 REST api 获取数据。但是当我使用 Github 中描述的方法时,我收到了警告。

这是我的代码:

我的项目支持 iOS 7.0 及更高版本。

我的 Xcode 版本 7.3.1

有什么办法可以克服这个警告吗?