iOS开发零基础教程之AFNetWorking POST 队列请求
2015-06-09 18:57
471 查看
我们在开发过程中,经常会遇到有些页面不止一个网络请求,有时候需要两个三个甚至更多,这个时候我们就需要队列请求,下边是GET请求的多个请求放在队列里边:
下边是POST请求:
参考文献:http://cocoadocs.org/docsets/AFNetworking/0.5.1/
NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"]; NSURLRequest *request = [NSURLRequest requestWithURL:url]; AFHTTPRequestOperation *operation1 = [[AFHTTPRequestOperation alloc] initWithRequest:request]; [operation1 setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) { NSLog(@"Response: %@", [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding]); } failure:^(AFHTTPRequestOperation *operation, NSError *error) { NSLog(@"Error: %@", error); }]; NSURL *url2 = [NSURL URLWithString:@"http://www.sohu.com"]; NSURLRequest *request2 = [NSURLRequest requestWithURL:url2]; AFHTTPRequestOperation *operation2 = [[AFHTTPRequestOperation alloc] initWithRequest:request2]; [operation2 setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) { NSLog(@"Response2: %@", [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding]); } failure:^(AFHTTPRequestOperation *operation, NSError *error) { NSLog(@"Error: %@", error); }]; NSURL *url3 = [NSURL URLWithString:@"http://www.sina.com"]; NSURLRequest *request3 = [NSURLRequest requestWithURL:url3]; AFHTTPRequestOperation *operation3 = [[AFHTTPRequestOperation alloc] initWithRequest:request3]; [operation3 setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) { NSLog(@"Response3: %@", [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding]); } failure:^(AFHTTPRequestOperation *operation, NSError *error) { NSLog(@"Error: %@", error); }]; //同时请求 NSOperationQueue *operationQueue = [[NSOperationQueue alloc] init]; [operationQueue setMaxConcurrentOperationCount:3]; [operationQueue addOperations:@[operation1, operation2, operation3] waitUntilFinished:NO]; //operation2 在 operation1 请求完成后执行 NSOperationQueue *operationQueue = [[NSOperationQueue alloc] init]; [operation2 addDependency:operation1]; [operationQueue addOperations:@[operation1, operation2, operation3] waitUntilFinished:NO];
下边是POST请求:
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://gowalla.com/friendships/request?user_id=1699"]]; [request setHTTPMethod:@"POST"]; NSDictionary *headers = [NSDictionary dictionaryWithObject:[NSString stringWithFormat:@"Token token=\"%@\"", kOAuthToken] forKey:@"Authorization"]; [request setAllHTTPHeaderFields:headers]; AFHTTPRequestOperation *operation = [AFHTTPRequestOperation operationWithRequest:request completion:^(NSURLRequest *request, NSHTTPURLResponse *response, NSData *data, NSError *error) { BOOL HTTPStatusCodeIsAcceptable = [[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(200, 100)] containsIndex:[response statusCode]]; if (HTTPStatusCodeIsAcceptable) { NSLog(@"Friend Request Sent"); } else { NSLog(@"[Error]: (%@ %@) %@", [request HTTPMethod], [[request URL] relativePath], error); } }]; NSOperationQueue *queue = [[[NSOperationQueue alloc] init] autorelease]; [queue addOperation:operation];
参考文献:http://cocoadocs.org/docsets/AFNetworking/0.5.1/
相关文章推荐
- iOS 动画结束后 view的位置 待完善
- iOS动画
- windows做iOS自动化测试
- iOS开发 Modal弹出控制器简介
- 苹果三大系统更新 iOS 9有何亮点?
- IOS 提示Unsupported Configuration
- 那些在学习iOS开发前就应该知道的事(part 1)
- iOS  日记2 --字符串赋值给指针与数组的区别
- iOS Autolayout情况下,ViewController嵌套时,childViewController的Frame异常问题
- iOS点滴- ViewController详解
- iOS 推送
- iOS中数据持久存储方式及区别
- ios简单动画的实现
- IOS8 设置TableView分割线
- IOS8开发技术之自动布局
- ios项目删除Git
- iOS下截屏的几种方法
- IOS开发获取路径的方法
- iOS9开发者测试版下载地址(系转载)
- IOS-PPRevealViewController侧边栏