转载:iOS开发零基础教程之AFNetWorking POST 队列请求

本文介绍了如何使用AFNetworking库在iOS应用中实现GET和POST请求的队列管理,包括并发请求与顺序请求的方法。

转载自:http://blog.youkuaiyun.com/crazyzhang1990/article/details/46430321
我们在开发过程中,经常会遇到有些页面不止一个网络请求,有时候需要两个三个甚至更多,这个时候我们就需要队列请求,下边是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/

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值