AFNetWorking3.0的问题发布参数编码

时间:2016-04-20 09:25:03

标签: ios afnetworking-3

我使用AFNetWorking3.0,并使用工具(Wireshark)来获取帖子数据(请求),例如我想发布像@{"name": @"zlj"}这样的参数,wireshark可以获得正确的数据,我可以见@{"name": @"zlj"}

但是,当我这样使用NSDictionary *para = @{@"json": @{@"name": @"zlj", @"sex": @"1"}},然后我使用AFNetWorking发布这些参数时,wireshark会获得我的帖子数据,如----- "json%5Bname%5D=zlj&json%5Bsex%5D=1"

所以我无法理解为什么要显示"json%5Bname%5D=zlj&json%5Bsex%5D=1",为什么不显示"@{@"json": @{@"name": @"zlj", @"sex": @"1"}}",有人可以告诉我吗?

1 个答案:

答案 0 :(得分:0)

我认为您需要做的是,不是将字典直接发送到服务器,而是将其转换为JSON序列化并按POST发送数据,如下所示。

NSMutableDictionary *dictionnary = [NSMutableDictionary dictionary]; 
[dictionnary setObject:@"zlj" forKey:@"name"];  
[dictionnary setObject:@"1" forKey:@"sex"];

NSError *error = nil; 
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dictionnary options:kNilOptions  error:&error];

然后通过POST方法将上述jsonData发送到服务器,它将起作用。