模型类中的ASIHTTPRequest异步请求

时间:2013-10-23 07:52:42

标签: ios objective-c asihttprequest asiformdatarequest

我想在我的模型类中使用ASIHTTPRequest或ASIFormDataRequest。 如何委托或检测请求状态,并返回值。

如:

我是一名拥有IBAction DoIt:发送者的控制者。我想调用Connector-> DoIt并在连接成功或失败时调用我的Controller。

我该如何处理?

谢谢。

1 个答案:

答案 0 :(得分:1)

基于回调(来自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];
}

基于阻止:

- (IBAction)grabURLInBackground:(id)sender
{
   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];
}