码迷,mamicode.com
首页 > Web开发 > 详细

POST JSON (字典 自定义类转为JSON上传)

时间:2015-06-10 07:39:16      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:

/// POST JSON 的主方法 主要设置  Content-Type 为  application/json 剩下就是将 类转为JSON 格式二进制数

- (void)postJSON:(NSData *)data {

    // 1. url

    NSURL *url = [NSURL URLWithString:@"http://127.0.0.1/postjson.php"];

    

    // 2. request

    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];

    

    // 2.1 httpMethod

    request.HTTPMethod = @"POST";

    // 2.2 设置 content-type,有些服务器在接收数据的时候,会做数据类型的校验

    [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];

    // 2.3 设置数据

    request.HTTPBody = data;

    

    // 3. connection

    [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {

        

        NSLog(@"%@", [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]);

    }];

}

 

/// POST 字典 组成的数组 或单独的字典

- (void)postDict {

    NSDictionary *dict1 = @{@"productId": @123, @"productName": @"Mac pro"};

    NSDictionary *dict2 = @{@"productId": @001, @"productName": @"iPhone 7"};

    

    NSArray *array = @[dict1, dict2];

    

    // 序列化,将数据发送给服务器之前,将字典/数组 -> 二进制数据

    // 数据解析 - 反序列化,将服务器返回的二进制数据转换成字典或者模型

    NSData *data = [NSJSONSerialization dataWithJSONObject:array options:0 error:NULL];

    

    [self postJSON:data];

}

 

// KVC   将类的属性转为字典,再将字典序列化

- (void)postPerson {

  // 参数:传入对象数组转换成字典

    id obj = [self.person dictionaryWithValuesForKeys:@[@"name", @"age", @"title", @"height"]];

    

    // 顶级节点,是数组或者字典

    if (![NSJSONSerialization isValidJSONObject:obj]) {

        NSLog(@"数据格式无效");

        return;

    }

    NSData *data = [NSJSONSerialization dataWithJSONObject:obj options:0 error:NULL];

    

    [self postJSON:data];

}

POST JSON (字典 自定义类转为JSON上传)

标签:

原文地址:http://www.cnblogs.com/weijingyun/p/4565025.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!