-1

我使用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"}}",有人可以告诉我吗?

4

1 回答 1

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 发送到服务器,它就可以工作了。

于 2016-04-20T09:33:44.667 回答