2013-10-23 47 views
0

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

例如:

我有一个控制器有IBAction DoIt:发件人。我想调用连接器 - > DoIt,并在连接成功或失败时回拨我的控制器。

我该如何处理?

谢谢。

+0

你读过吗? http://allseeing-i.com/ASIHTTPRequest/How-to-use也不要使用ASIHTTP,几年来它几乎已经死了。 AFNetworking现在是网络图书馆。 – jbat100

回答

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]; 
}