POST提交JSON数据

粘贴事例代码如下:


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

    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];

    request.HTTPMethod = @"post";

    

    //向服务器提交json数据

    //序列化  =>  将字典或者数组转换成二进制数据

    //反序列化 => 把二进制数据转换成字典或者数组

    

//    NSDictionary *dict1 = @{@"name":@"张三",@"age":@20};

//    NSDictionary *dict2 = @{@"name":@"李四",@"age":@30};

//   NSArray *array = @[dict1,dict2];

 

    /**

     以下两个方法都是kvc的方法,kvccocoa的大招,是一种间接给对象属性设置数据的方式

     1,从网络上获取到字典或者数组 => 字典转模型 => setValuesForKeysWithDictionary

     2,将自定义对象以JSON的格式传递给服务器 =》模型转字典 => dictionaryWithValuesForKeys

     数组中指定什么属性,就转换什么属性

    

     *** kvc最好用的地方,核心动画,xml解析

     *** json是一种特殊格式的字符串

    

     提示:再将对象序列化成json格式的数据之前,可以使用- [NSJSONSerialization isValidJSONObject:p] 检测对象是否可以被序列化。

    */

    

    

    CZPerson *p1 = [[CZPersonalloc] init];

    p1.name = @"张三";

    p1.age = 30;

//   id obj = [p1dictionaryWithValuesForKeys:@[@"age",@"name"]];

    

    CZPerson *p2 = [[CZPersonalloc] init];

    p2.name = @"李四";

    p2.age = 20;

    

    id obj1 = [p1 dictionaryWithValuesForKeys:@[@"name",@"age"]];

    id obj2 = [p2 dictionaryWithValuesForKeys:@[@"name",@"age"]];

    

    NSArray *array =  @[obj1,obj2];


    if([NSJSONSerialization isValidJSONObject:array]){

       NSData *data = [NSJSONSerialization dataWithJSONObject:arrayoptions:1error:NULL];

       request.HTTPBody = data;

    }else{

       NSLog(@"非法格式");

       return;

    }

    

    [[[NSURLSession sharedSession]dataTaskWithRequest:request completionHandler:^(NSData*data, NSURLResponse *response, NSError *error) {

        NSString *str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

       NSLog(@"%@",str);

    }] resume];




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值