1.
+ (AFHTTPRequestOperation *)requestSellerWithCompletion:(requestFinishedCompletionBlock)successBlock { AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; AFHTTPRequestOperation * operation = [manager GET:kRequestSellerURL parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) { if (operation.isCancelled) { NSLog(@"operation is Canceled"); }else{ NSArray *sellerArray = [MTLJSONAdapter modelsOfClass:[Seller class] fromJSONArray:responseObject[@"data"] error:nil]; if (successBlock) { // NSLog(@"current operation count is %d",[manager.operationQueue operations].count); successBlock(sellerArray); } } } failure:^(AFHTTPRequestOperation *operation, NSError *error) { }]; return operation; }
http://www.jianshu.com/p/d63d0509229c
2.afnetwork 2.0
- (NSURLSessionDataTask *)dataTaskWithRequest:(NSURLRequest *)request completionHandler:(void (^)(NSURLResponse *response, id responseObject, NSError *error))completionHandler { NSURLSessionDataTask *dataTask = [self.session dataTaskWithRequest:request]; // AFURLSessionManagerTaskDelegate *delegate = [AFURLSessionManagerTaskDelegate delegateForManager:self completionHandler:completionHandler]; // [self setDelegate:delegate forTask:dataTask]; __block id responseObject = nil; NSMutableDictionary *userInfo = [NSMutableDictionary dictionary]; NSURLSessionDataTask *task = [self.session dataTaskWithRequest:request completionHandler: ^(NSData *data, NSURLResponse *response, NSError *error) { if (error) { userInfo[AFNetworkingTaskDidFinishErrorKey] = error; dispatch_group_async(self.completionGroup ?: url_session_manager_completion_group(), self.completionQueue ?: dispatch_get_main_queue(), ^{ if (completionHandler) { completionHandler(response, responseObject, error); } [[NSNotificationCenter defaultCenter] postNotificationName:AFNetworkingTaskDidFinishNotification object:task userInfo:userInfo]; }); } else { NSError *serializationError = nil; if (responseObject) { userInfo[AFNetworkingTaskDidFinishSerializedResponseKey] = responseObject; } if (serializationError) { userInfo[AFNetworkingTaskDidFinishErrorKey] = serializationError; } dispatch_group_async(self.completionGroup ?: url_session_manager_completion_group(), self.completionQueue ?: dispatch_get_main_queue(), ^{ if (completionHandler) { completionHandler(task.response, responseObject, serializationError); } [[NSNotificationCenter defaultCenter] postNotificationName:AFNetworkingTaskDidFinishNotification object:task userInfo:userInfo]; }); } }]; [dataTask addObserver:self forKeyPath:@"state" options:NSKeyValueObservingOptionOld|NSKeyValueObservingOptionNew context:AFTaskStateChangedContext]; return dataTask; }
3.http post
#### Query String Parameter Encoding
```objective-c
[[AFHTTPRequestSerializer serializer] requestWithMethod:@"GET" URLString:URLString parameters:parameters];
```
GET http://example.com?foo=bar&baz[]=1&baz[]=2&baz[]=3
#### URL Form Parameter Encoding
```objective-c
[[AFHTTPRequestSerializer serializer] requestWithMethod:@"POST" URLString:URLString parameters:parameters];
```
POST http://example.com/
Content-Type: application/x-www-form-urlencoded
foo=bar&baz[]=1&baz[]=2&baz[]=3
#### JSON Parameter Encoding
```objective-c
[[AFJSONRequestSerializer serializer] requestWithMethod:@"POST" URLString:URLString parameters:parameters];
```
POST http://example.com/
Content-Type: application/json
{"foo": "bar", "baz": [1,2,3]}
---