【问题标题】:iOS App in background longer than 10 minutes and communicating with Web ServiceiOS App 在后台超过 10 分钟并与 Web Service 通信
【发布时间】:2013-05-13 04:39:43
【问题描述】:

我有一个使用位置更新的应用程序,它可以在后台运行超过 10 分钟。此应用可以在10 分钟以内和10 分钟以上 的背景下与Web 服务A 通信。我面临的问题是,当我的应用在后台超过 10 分钟时,它无法Web 服务 B 通信--I得到 500:内部服务器错误。当我的应用在后台运行不到 10 分钟时,我可以与 Web 服务 B 通信。

注意:我也可以在前台与 Web 服务 A 和 B 通信。另请注意,我使用相同的代码/库与 Web 服务 A 和 B 进行通信,无论它们是在前台还是后台。

有人遇到过同样的问题吗?你能请教调试的想法吗?一旦我的服务器管理员可用,我将要求他分析收到的请求并检查套接字是否过早关闭。

【问题讨论】:

  • 一定要和管理员核实一下,因为 500 通常是来自服务器的消息,而不是内部生成的。您可以添加用于建立连接的代码吗? (或者至少表明你正在使用什么机制)?
  • @gaige 我正在使用 LRResty 库与服务器通信:'[[LRResty client] get:escapedUrlString parameters:nil headers:params withBlock:^(LRRestyResponse *response) { // 代码这里}'。他上线后,我一定会和他核实。

标签: iphone ios objective-c


【解决方案1】:

我收到 500:内部服务器错误

这与 iOS 后台服务没有任何关系。您的应用程序正在运行并与服务器通信。

要调试此问题,请将您的应用连接到像 Charles 这样的代理,并查看成功请求和失败请求之间的区别。

我怀疑您的会话可能在服务器上超时。查看您的服务器配置,看看您的超时参数是否与您观察到的相符。

【讨论】:

  • Jim:我知道 500 是在服务器端生成的,我只是觉得奇怪的是我的请求在前 10 分钟在后台成功,但之后没有成功。查尔斯代理吉姆的好点 - 我现在就试试。感谢您的快速回复!
猜你喜欢
  • 2013-04-08
  • 1970-01-01
  • 2016-05-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-29
相关资源
最近更新 更多