我在我的iPhone应用程序中使用ASIHTTPRequest框架来管理HTTP通信。我按照项目主页中给出的示例发送异步请求。我们必须实现两个回调,一个用于requestFinish,另一个用于requestFailed。
但是,iPhone发送的60%的请求最终都在“requestFinish”回调方法中,并提供了有效的HTTP状态代码。但有时它会转到“requestFailed”回调,状态代码变为“0”,令人困惑。 我的调查显示互联网连接正常,我将请求发送到正确的URL,但是在服务器日志中找不到日志消息。 那么为什么请求在中间被随机丢弃?有没有人遇到过这类问题。会非常有帮助的。
由于
答案 0 :(得分:5)
您是否正在查看ASIHTTPRequest对象的状态代码?该代码只是一个HTTP响应代码 - 如果你没有得到响应,那么它应该为零。
相反,您希望查看委托失败回调为您提供的NSError
对象。
我会使用类似的东西:
NSLog(@"%@",[error localizedErrorDescription]);
打印到日志错误是什么。当然,“error”是方法签名中变量的名称 - 你应该仔细检查一下,我认为这是默认值。
答案 1 :(得分:1)
在[ASHTTPRequest initialize]
中,我更改了
[sharedQueue setMaxConcurrentOperationCount:4]
到
[sharedQueue setMaxConcurrentOperationCount:10]
这项工作适合我,但我不知道为什么。
MORE:
我找到了this。
答案 2 :(得分:0)
除了phooze建议的内容之外,您还可以启用ASIHTTPRequestConfig.h中的日志记录,这可能会提供有关正在发生的事情的线索。