您的位置:首页 > 移动开发 > IOS开发

iOS---iOS开发零基础教程之AFNetWorking POST 队列请求

2015-11-23 20:33 453 查看
转载自:http://blog.csdn.net/crazyzhang1990/article/details/46430321

我们在开发过程中,经常会遇到有些页面不止一个网络请求,有时候需要两个三个甚至更多,这个时候我们就需要队列请求,下边是GET请求的多个请求放在队列里边:

[objc] view
plaincopyprint?

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
plaincopyprint?

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/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: