我有
-(void)requestFailed:(ASIHTTPRequest *)request
{
NSError *error = [request error];
NSLog(@"Request Failed Error: %@", error);
}
当我提出要求时,我
//add data to the array
NSString *json = [array JSONRepresentation];
[request appendPostData:[json dataUsingEncoding:NSUTF8StringEncoding]];
[request startAsynchronous];
我在日志中收到了这个:
0-08-11 16:52:11.652 MyProject[11720:207] Starting asynchronous request <ASIHTTPRequest: 0x5a7df10>
2010-08-11 16:52:11.861 MyProject [11720:207]请求已完成下载数据 2010-08-11 16:52:11.861 MyProject [11720:207]请求失败: (gdb)
但我的日志声明在
-(void)requestFailed
没有被调用。有什么想法吗?
干杯
答案 0 :(得分:1)
您是否设置了请求的delegate
和didFailSelector
属性?一般:
[request setDelegate:self];
[request setDidFailSelector:@selector(requestFailed:)];
如果-requestFailed:
方法在同一个类实现文件中,就足够了。
同时设置didFinishSelector
属性以在请求正确完成时调用本地选择器。
答案 1 :(得分:1)
-requestFailed:仅在无法完成请求时返回 - 例如。无法联系服务器,或服务器不符合http协议。
如果请求可以完成,将调用requestFinished,然后您可以检查那里的http状态代码,这可能表示失败。 responseStatusText可以提供有关失败原因的更多信息。