转载:iOS开发零基础教程之AFNetWorking POST 队列请求
2016-02-29 14:41
525 查看
转载自:/article/1816739.html
我们在开发过程中,经常会遇到有些页面不止一个网络请求,有时候需要两个三个甚至更多,这个时候我们就需要队列请求,下边是GET请求的多个请求放在队列里边:
[objc] view plain copy print?
NSURL *url = [NSURL URLWithString:@”http://www.baidu.com“];
下边是POST请求:
[objc] view plain copy print?
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/
我们在开发过程中,经常会遇到有些页面不止一个网络请求,有时候需要两个三个甚至更多,这个时候我们就需要队列请求,下边是GET请求的多个请求放在队列里边:
[objc] view plain copy print?
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请求:
[objc] view plain copy print?
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项目上线的流程
- iOS mask Layer 详解
- Missing iOS Distribution signing identity解决方案
- iOS客户端 支付宝支付 (密钥生成)
- iOS应用动态部署方案
- iOS AFN
- iOS多线程GCD详解
- iOS开发——Scheme白名单
- iOS开发:WebKit、Safari以及SafariViewController
- iOS学习----NSNumber的使用
- IOS学习 NSMutableArray中元素排序
- iOS自定义推送音效
- iOS: 从ipa提取图片资源文件及从iOS设备提取ipa文件的方法
- iOS开发证书变成“此证书的签发者无效”解决方法
- iOS开发--控件
- iOS开发-自定义控件的方式及注意(一)
- iOS闭包循环引用讲解
- iOS开发中如何合理地制造BUG
- iOS开发技巧系列---打造强大的BaseModel
- iOS中创建.gitignore文件