我遇到了一个我无法理解的错误,目前它只发生在特定设备上。它发生在装有 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/