ios - 某些请求无故超时

标签 ios rest afnetworking nsurlrequest connection-timeout

我遇到了一个我无法理解的错误,目前它只发生在特定设备上。它发生在装有 iOS 6 的 iPhone 5 上,但遗憾的是我无法访问另一台来检查它是否与它是 iPhone 5 这一事实有关。

问题是尽管连接速度很快,但向我们的服务器 API 发出的某些特定网络请求会超时,而且似乎没有服务器端问题,因为服务器正常响应来自其他设备的相同请求。

我使用 AFNetworking 发出我的 http 请求。

我已经将 AFHTTPClient 子类化,对于那个特定的请求,我像这样使用它

[[MyClient sharedInstance] putPath:@"myPath"
                        parameters:[NSDictionary dictionaryWithObject:@"y" forKey:@"set"]
                           success:^(AFHTTPRequestOperation *operation, id responseObject){
                                     // do something with response
                           }
                           failure:^(AFHTTPRequestOperation *operation, NSError *error){
                                     // tell user there an error occurred
                           }];

如果有人指出发生这种情况的一些可能原因或需要分析的事情以了解正在发生的事情,我将不胜感激。

最佳答案

问题与 AFNetworking 和特定设备之间的交互相关的可能性几乎为零 - 它可能是一个或另一个。

测试 AFNetworking

AFNetworking 确实提供了连接变化的内置检测。使用 AFHTTPClient-setReachabilityStatusChangeBlock: 方法设置 block 。这会在 Internet 连接丢失时通知您,并允许您根据需要调整应用的行为。

Stack Overflow question提供示例代码和设置说明。

下面是status变量的值,供您引用:

AFNetworkReachabilityStatusUnknown          = -1,
AFNetworkReachabilityStatusNotReachable     = 0,
AFNetworkReachabilityStatusReachableViaWWAN = 1,
AFNetworkReachabilityStatusReachableViaWiFi = 2,

测试设备

您可以尝试通过以下方式将问题隔离到您的设备:

• 下载Fing并比较不同设备上的网络性能

• 在testmyiphone.com 上进行数据速度测试

• 检查设备的 parental controls查看是否有任何内容会与您应用的行为发生冲突

• 在 iTunes 中恢复设备,无需从备份恢复

关于ios - 某些请求无故超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14506415/

相关文章:

ios - 魔法记录在后台保存

java - 如何构建在 HttpPost 中使用的 JSONobject 请求

RESTful 软删除

ios - OCMArg checkWithBlock 因 EXC_BAD_ACCESS 崩溃

iphone - AFNetworking 检查图像是否被缓存

ios - 约束或其 anchor 是否引用不同 View 层次结构中的项目?那是违法的

ios - 在连接的两端执行相同的身份验证数学

javascript - Dropbox 选择按钮返回错误消息

rest - Laravel 资源 Controller 编辑和更新的区别

iphone - AFNetworking - 构建 NSDictionary 参数