检查ASIFormDataRequest是否仍在进行或是否已完成获取数据的最佳方法是什么?

时间:2012-07-30 10:08:07

标签: iphone ios xcode4.2 asihttprequest

在我的应用程序中,我遇到了多个Web服务同时被克隆的情况。如果特定的ASIFormDataRequest仍在进行中,我想知道最好的方法。

2 个答案:

答案 0 :(得分:7)

您可以像yourRequest.tag一样将标记设置为ASIHttpRequest,并使用以下委托方法。如果完成成功,那么它将在requestFinished中完成,如果出现问题,那么它将进入requestFailed。

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

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

答案 1 :(得分:3)

检查以下代码可能会对您有所帮助

        if (!networkQueue) 
        {
            networkQueue = [[ASINetworkQueue alloc] init];  
        }
        [networkQueue reset];
        [networkQueue setRequestDidFinishSelector:@selector(requestDone:)];
        [networkQueue setRequestDidFailSelector:@selector(requestWentWrong:)];
        [networkQueue setShowAccurateProgress:TRUE];
        [networkQueue setDelegate:self];
        ASIHTTPRequest *requestqueue;
         requestqueue = [[[ASIHTTPRequest alloc] initWithURL:[NSURL URLWithString:str_imageurl]] autorelease];
         [requestqueue setDownloadDestinationPath:[str_downloadpath stringByAppendingPathComponent:str_imgname]];
       NSMutableDictionary *dictinfo=[[NSMutableDictionary alloc]init];
       [dictinfo setValue:str_settingvalue forKey:@"SettingValue"];
       [requestqueue setUserInfo:dictinfo];
       [networkQueue addOperation:requestqueue];
      [networkQueue go];

ON DELEGATE METHODS

    //queue responder....
   -(void)requestDone:(ASIHTTPRequest *)request
     {
         NSLog(@"%@",[request userInfo]);
         if ([[[request userInfo]valueForKey:@"SettingValue"]isEqualToString:kAppSplashScreenDOWNLOADURL]) 
         {
           //FORM DATA REQEUST FOR PARTICULAR REQUEST HAS BEEN SUCCESS FULL
         }
     } 
    -(void)requestWentWrong:(ASIHTTPRequest *)request
    {
        NSLog(@"%@",[request userInfo]);
         if ([[[request userInfo]valueForKey:@"SettingValue"]isEqualToString:kAppSplashScreenDOWNLOAD]) 
         {
           //FORM DATA REQEUST FOR PARTICULAR REQUEST HAS BEEN FAIL
         }

    }

此致 NIKHIL