结束时ASIHttpFormDataRequest通知

时间:2011-09-10 21:59:34

标签: ios xcode notifications asihttprequest

我怎么知道我的ASIHttpFormDataRequest何时结束? 实际上我连续做了两个。第一个是发送消息,而另一个是从数据库中检索所有消息。

或者有时我的第一条消息尚未发送,而我的第二条请求只是给我一个未上载的消息列表。

我想在第一个结束时推迟第二个。 谢谢!

有什么想法吗?

谢谢:)

1 个答案:

答案 0 :(得分:0)

最好以异步方式使用请求。

要确定请求是否已完成,您只需将您的班级与[ASIHTTPRequestDelegate][1]相符即可。 它为您提供了一系列实现成功,失败或重定向请求的方法。

在给定的情况下,你正在寻找 - (void)requestFinished:(ASIHTTPRequest *)request; 您必须将请求的委托设置为当前的调用类。

根据您当前请求的结果,您可以触发另一个请求。您可以在其中放置if-statement以检查网址和响应代码,并相应地触发您的下一个请求。 (还有很多其他方法可以确定何时可以调用下一个请求。但最简单的方法是收听第一个请求的结果。)

以下是ASIHTTPRequest Projects Documentation的一些代码:

- (IBAction)grabURLInBackground:(id)sender
{
   NSURL *url = [NSURL URLWithString:@"http://allseeing-i.com"];
   ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
   [request setDelegate:self];
   [request startAsynchronous];
}

- (void)requestFinished:(ASIHTTPRequest *)request
{
   // Use when fetching text data
   NSString *responseString = [request responseString];

   // Use when fetching binary data
   NSData *responseData = [request responseData];
}

- (void)requestFailed:(ASIHTTPRequest *)request
{
   NSError *error = [request error];
}

HTH