0

我有

-(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

没有被调用。有任何想法吗?

干杯

4

2 回答 2

1

您是否设置了请求delegatedidFailSelector属性?通常:

[request setDelegate:self];
[request setDidFailSelector:@selector(requestFailed:)];

-requestFailed:如果方法在同一个类实现文件中就足够了。

还设置didFinishSelector属性以在请求正确完成时调用本地选择器。

于 2010-08-11T22:47:45.333 回答
1

-requestFailed:仅在请求无法完成时返回 - 例如。无法联系到服务器,或者服务器不符合 http 协议。

如果请求可以完成,将调用requestFinished,然后您可以检查那里的http状态码,这可能表示失败。responseStatusText 可能会提供有关失败原因的更多信息。

于 2010-08-12T12:19:36.207 回答