使用AFN传递json字符串参数
2016-07-10 18:01
561 查看
一. 问题描述:在使用AFN的post传递参数的时候,需要传递2个参数,这两个参数都是字典类型的,由于AFN的post方法的params参数是一个字典,所以我这么写的:
然后传参发现发送失败。报错400,也就是语法错误。
二. 解决思路:由于是语法错误,所以问了后台,发现后台需要的不是json数据,而是字符串格式的数据,我直接把p1Info作为参数传递,就是直接把json发给了后台,后台是不接受的。
三. 解决方法:所以应该把json格式的参数先转换成字符串再放到parms中,转换的方法是先把json转换成data,然后再利用string的initWithData方法生成一个字符串参数。如下:
解决!
// 创建JSON数据 NSDictionary *p1Info = @{ @"version" : @"1.0", @"uid" : @"111222", @"platform" : @"ios", @"network" : @"wifi" }; NSDictionary *p2Info = @{ @"mobile" : phone, @"passwd" : @"123", }; NSMutableDictionary *params = [NSMutableDictionary dictionary]; params[@"parm1"] = p1Info; params[@"parm2"] = p2Info;
然后传参发现发送失败。报错400,也就是语法错误。
二. 解决思路:由于是语法错误,所以问了后台,发现后台需要的不是json数据,而是字符串格式的数据,我直接把p1Info作为参数传递,就是直接把json发给了后台,后台是不接受的。
三. 解决方法:所以应该把json格式的参数先转换成字符串再放到parms中,转换的方法是先把json转换成data,然后再利用string的initWithData方法生成一个字符串参数。如下:
NSDictionary *p1Info = @{ @"version" : @"1.0", @"uid" : @"111222", @"platform" : @"ios", @"network" : @"wifi" }; NSString *p1Str = [[NSString alloc] initWithData:[NSJSONSerialization dataWithJSONObject:p1Info options:0 error:nil] encoding:NSUTF8StringEncoding]; NSMutableDictionary *params = [NSMutableDictionary dictionary]; params[@"p1"] = p1Str;
解决!
相关文章推荐
- 我是运营,我没有假期
- 使用 Python 处理 JSON 格式的数据
- XML 与 JSON 优劣对比
- VBA将excel数据表生成JSON文件
- DB2数据库的安装
- C#实现把指定数据写入串口
- “传奇”图象数据存储方式
- newtonsoft.json解析天气数据出错解决方法
- 修复mysql数据库
- 浅析SQL数据操作语句
- SQLServer 数据导入导出的几种方法小结
- 简述MySQL分片中快速数据迁移
- MySQL数据备份之mysqldump的使用详解
- C#实现窗体间传递数据实例
- vbs 解析json jsonp的方法
- Ruby和Ruby on Rails中解析JSON格式数据的实例教程
- C#中的委托数据类型简介
- SQL Server删除表及删除表中数据的方法
- SqlServer2008误操作数据(delete或者update)后恢复数据的方法
- 给你的数据库文件减肥