zoukankan      html  css  js  c++  java
  • 第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]}

    ---

  • 相关阅读:
    JavaScript 中,定义函数时用 var foo = function () {} 和 function foo() 有什么区别?
    Vue报错 [Vue warn]: Cannot find element
    一个android样本的过保护
    cve-2015-1635漏洞分析
    一个linux的样本分析
    ios透明代理抓包
    各浏览器抗uaf机制
    面试知识点总结之Nginx
    面试知识点总结之redis
    面试知识点总结之I/O流IO/BIO/NIO/AIO区别
  • 原文地址:https://www.cnblogs.com/javastart/p/7210857.html
Copyright © 2011-2022 走看看