大部分时间我都在failMethod
,我收到错误消息Request timed out
和一大堆行话。为什么是这样?有解决方案吗?
我正在使用ASIHTTPRequest
[self setNetworkQueue:[ASINetworkQueue queue]];
[[self networkQueue] setDelegate:self];
[[self networkQueue] setShouldCancelAllRequestsOnFailure:NO];
[[self networkQueue] setRequestDidFinishSelector:@selector(successMethod:)];
[[self networkQueue] setRequestDidFailSelector:@selector(failMethod:)];
ASIHTTPRequest *r = [ASIHTTPRequest requestWithURL:[NSURL URLWithString:@"http://www.example.com/wenb"]];
[r setUseKeychainPersistence:YES];
[[self networkQueue] addOperation:r];
[[self networkQueue] go];
答案 0 :(得分:3)
Request timed out
通常意味着它所说的:您尝试获取数据的服务器花了太长时间才能响应,并且您的请求被终止(我假设您发布的网址不是网址你试图达到)。
有两种解决方案:最好,弄清楚为什么你的请求需要很长时间才能完成,因为ASIHTTPRequest
默认有10秒的时间,这很长。另一个更简单的选择是将超时增加到30秒,你可以这样做:
[ASIHTTPRequest setDefaultTimeOutSeconds:30]
也许尝试通过手机以外的其他方式运行您的请求,看看他们需要多长时间,并更好地了解问题所在。
答案 1 :(得分:1)
对我而言,这取决于移动运营商。我遇到了同样的问题,我在不同的运营商网络上使用相同的应用进行了测试。在我看来,网络提供商正在使用不同类型的连接(代理)。当您查看手机日志时,您也可以从邮件客户端看到相同的错误。一个解决方案是,使用简单的NSURLConnection
和HTTP
方法。