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