【问题标题】:NSURLConnection stops receiving dataNSURLConnection 停止接收数据
【发布时间】:2014-10-12 11:14:00
【问题描述】:

我最近完成了一个连接到我的客户提供的许多网络服务的应用程序。过去我已经做过无数次了,没有任何问题。

但是,由于某种原因,其中一项服务会下载大约 250kb-1mb 的数据。

+ (void)connection:(MCURLConnection *)connection didReceiveData:(NSData *)data

偶尔会在第一次通话后停止。

这是运行时的日志

2014-08-19 11:57:43.270 MiniCheckout[886:60b] didReceiveResponse: didGetProductsForShop:
2014-08-19 11:57:43.270 MiniCheckout[886:60b] Code: 200
2014-08-19 11:57:43.271 MiniCheckout[886:60b] didReceiveData
2014-08-19 11:57:43.457 MiniCheckout[886:60b] didReceiveData
2014-08-19 11:57:43.645 MiniCheckout[886:60b] didReceiveData
2014-08-19 11:57:43.830 MiniCheckout[886:60b] didReceiveData
2014-08-19 11:57:44.003 MiniCheckout[886:60b] didReceiveData
2014-08-19 11:57:44.007 MiniCheckout[886:60b] didReceiveData
2014-08-19 11:57:44.169 MiniCheckout[886:60b] ConnectionFinished:didGetProductsForShop:

如果没有(这太常见了!)

2014-08-19 11:57:43.270 MiniCheckout[886:60b] didReceiveResponse: didGetProductsForShop:
2014-08-19 11:57:43.270 MiniCheckout[886:60b] Code: 200
2014-08-19 11:57:43.271 MiniCheckout[886:60b] didReceiveData

就是这样,它就停止了!

我有一个等待 60 秒的计时器,这样应用程序就不会“锁定”。但它发生得太频繁了,客户对此并不满意。

网络服务器/服务由客户端提供,问题发生在 Wifi 和 3G 上。

我已经无数次处理过网络服务,没有遇到任何问题。但我不知道为什么会这样。

【问题讨论】:

  • 我也有同样的问题。同样在 iOS 7.1 上,确切地说是 7.1.1!任何想法将不胜感激!
  • 了解您在这些情况下获得了哪些数据会很有趣。

标签: web-services nsurlconnection ios7.1 nsurlconnectiondelegate


【解决方案1】:

你可以在你的 NSURLRequest 对象中指定一个超时时间。一种方法是通过 requestWithURL:cachePolicy:timeoutInterval: 方法构造它。 (如果您不想担心该部分,可以传入默认的 NSURLRequestUseProtocolCachePolicy cachePolicy 参数。)超时是以秒为单位的浮点值,iPhone SDK 中基本上所有时间间隔都是如此。

还要确保您的 NSURLConnection 的委托已设置并响应 connection:didFailWithError: 方法。连接总是在连接完成时调用此方法或 connectionDidFinishLoading:。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-18
    • 1970-01-01
    • 2011-11-30
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多