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

    ---

  • 相关阅读:
    如何使用C++构建一个极坐标系?
    归一化 [a] 到 [b] 区间
    ffmpeg 如何转换 rgb 图片到 yuv420p?如何使用 C 语言实现 rgb24 如何转换 yuv420p ?
    如何写一个通用的网络包?
    jenkins 配置参数为tag
    jmeter函数助手digest使用简介
    RD-T: 3540 Front Impact Bumper Model
    Listary软件的使用
    Adams各种材料的接触力参数
    Spring 使用构造方法注入方式
  • 原文地址:https://www.cnblogs.com/javastart/p/7210857.html
Copyright © 2011-2022 走看看