0

大多数情况下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];
4

2 回答 2

3

Request timed out通常意味着它所说的:您尝试从中获取数据的服务器响应时间过长,并且您的请求已终止(我假设您发布的 URL 不是您尝试访问的 URL)。

有两种解决方案:最好弄清楚为什么您的请求需要这么长时间才能完成,因为ASIHTTPRequest默认情况下有 10 秒超时,这很长。另一个更简单的选项是将超时时间增加到 30 秒,您可以这样做:

[ASIHTTPRequest setDefaultTimeOutSeconds:30]

也许尝试通过电话以外的其他方式处理您的请求,以查看它们需要多长时间,并更清楚地了解问题所在。

于 2012-02-19T16:59:54.330 回答
1

对我来说,这取决于移动运营商。我遇到了同样的问题,我已经使用相同的应用程序在不同的运营商网络上进行了测试。在我看来,网络提供商正在使用不同类型的连接(代理)。当您查看电话日志时,您也可以从邮件客户端看到相同的错误。一种解决方案是,使用简单NSURLConnection的 withHTTP方法。

于 2012-02-20T12:25:11.707 回答