有些人要求超时,没有明确的理由

时间:2013-01-24 16:44:58

标签: 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
                           }];

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

3 个答案:

答案 0 :(得分:2)

这个问题与AFNetworking和特定设备之间的相互作用几乎为零 - 很可能是其中之一。

测试AFNetworking

AFNetworking确实提供了连接变化的内置检测。使用AFHTTPClient的{​​{1}}方法设置块。这将告诉您何时丢失互联网连接,并允许您根据需要调整应用的行为。

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

以下是-setReachabilityStatusChangeBlock:变量的值,供您参考:

status

测试设备

您可以尝试将问题与设备隔离开来:

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

•对testmyiphone.com

进行数据速度测试

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

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

答案 1 :(得分:0)

我建议您首先使用Charles等工具监控您发送的实际HTTP请求/响应

您可以使用Charles作为实际设备的代理,请查看说明here

希望这有帮助。

答案 2 :(得分:0)

我的建议是检查你的iphone wifi网络。这种情况发生在我以前,当我连接到我公司的公司网络时,我试图连接到我的服务器并且有一个请求超时。这可能是由于一些代理问题。

首先是你的服务器内联网?如果不是,请尝试使用3G连接到服务器。

如果是内联网,请尝试查找替代公司网络,或者如果您的公司有一个

,请使用VPN