第10月第20天 afnetwork like MKNetworkEngine http post

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]}

---

posted @ 2017-07-20 13:55  lianhuaren  阅读(197)  评论(0编辑  收藏  举报