IPhone之ASIFormDataRequest POST操作架构设计

来源:互联网 发布:淘宝出售中的商品id 编辑:程序博客网 时间:2024/06/06 00:12

ASIFormDataRequest的POST操作架构设计,方法由自己定义


//开启iphone网络开关[UIApplication sharedApplication].networkActivityIndicatorVisible = YES; ASIFormDataRequest *request = [[ASIFormDataRequest alloc] initWithURL:[NSURL URLWithString:host]];//超时时间request.timeOutSeconds = 30; //定义异步方法[request setDelegate:self];[request setDidFailSelector:@selector(requestDidFailed:)];[request setDidFinishSelector:@selector(requestDidSuccess:)]; //用户自定义数据   字典类型  (可选)request.userInfo = [NSDictionary dictionaryWithObject:method forKey:@"Method"];//post的数据 [request appendPostData:[body dataUsingEncoding:NSUTF8StringEncoding]]; //开始执行[request startAsynchronous];//执行成功- (void)requestDidSuccess:(ASIFormDataRequest *)request{//获取头文件NSDictionary *headers = [request responseHeaders]; //获取http协议执行代码NSLog(@"Code:%d",[request responseStatusCode]); if ([delegate respondsToSelector:@selector(OARequestSuccessed:withResponse:WithData:withHeaders:)]){//执行委托操作  (架构设计   自选)[delegate OARequestSuccessed:method withResponse:[request responseString] WithData:[request responseData] withHeaders:headers]; }//清空if (request){[request release];} //关闭网络[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;} //执行失败- (void)requestDidFailed:(ASIFormDataRequest *)request{//获取的用户自定义内容NSString *method = [request.userInfo objectForKey:@"Method"];//获取错误数据NSError *error = [request error]; if ([delegate respondsToSelector:@selector(OARequestFailed:withError:)]) {//执行委托 将错误数据传其他方式(架构设计   自选)[delegate OARequestFailed:method withError:error];} if (request) {[request release];} [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;}//执行成功函数- (void)OARequestSuccessed:(NSString *)method withResponse:(NSString *)response WithData:(NSData *)data withHeaders:(NSDictionary *)headers{NSString *responseStr = [[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding] autorelease];//服务返回post后的数据NSLog(@"response:\n%@",responseStr);}//执行失败函数- (void)OARequestFailed:(NSString *)method withError:(NSError *)error{NSLog(@"Error:%@",error);UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"出错了" message:@"网络连接失败, 请稍后重试." delegate:nil cancelButtonTitle:@"好的" otherButtonTitles:nil];[alert show];[alert release];}


原创粉丝点击