我的要求是
NSURL *requestUrl = [NSURL URLWithString:url];
if(request_) {
[request_ setDelegate:nil];
[request_ release];
}
request_ = [[ASIFormDataRequest requestWithURL:requestUrl] retain];
[request_ setDelegate:self];
[request_ setRequestMethod:@"GET"];
[request_ setTimeOutSeconds:HTTP_TIME_OUT];
[request_ startAsynchronous];
呼叫正在进行,因为顶部条上的网络访问指示器正在旋转并在几秒钟后消失。但是任何一种委托方法
- (void)requestFinished:(ASIHTTPRequest *)request
或
- (void)requestFailed:(ASIHTTPRequest *)request
未被调用。可能出了什么问题?
提前致谢。
PS:有时,由于某些问题,服务器返回“500内部服务器错误”。但即使在那种情况下,也不应该是代表
- (void)requestFailed:(ASIHTTPRequest *)request
被称为?
答案 0 :(得分:4)
您可以使用这些块来检查它。
这是相同的例子:
NSURL *url = [NSURL URLWithString:@"http://allseeing-i.com"];
__block ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request setCompletionBlock:^{
// Use when fetching text data
NSString *responseString = [request responseString];
// Use when fetching binary data
NSData *responseData = [request responseData];
}];
[request setFailedBlock:^{
NSError *error = [request error];
}];
[request startAsynchronous];
我希望这可能有所帮助。
答案 1 :(得分:1)
确保您的课程符合ASIHTTPRequestDelegate
协议。
@interface YourClass : ... <ASIHTTPRequestDelegate>