AFNetwork请求参数格式问题

URL = @"..."
parameters = @{@"states":@[@1,@2,@3]};
    [[AFHTTPRequestOperationManager manager] POST:URL parameters:parameters success:nil failure:nil];

我的parameters字典在服务器端解析出来是

{ 'states[]': [ '1', '2', '3' ] }

而不是预期的

{ 'states': [ '1', '2', '3' ] }

AFN为什么要给参数加上[]?
怎么去掉[]发送正常的states参数?
谢谢

阅读 5.7k
3 个回答

发送前 先转换为json字符串 会不会好些?

'states[]': [ '1', '2', '3' ]
表明
states[0] = '1'
states[1] = '2'
states[2] = '3'
server 端已经能取值了

parameters = @{@"states":@[@1,@2,@3]};

不应该直接传数组,因为对于PHP这样的后台语言,@"a[sf]=1"到了后台拿到的是一个数组,并不是像我们前端一样是一个字符串。而且前端接口中直接传数组也是不合理的,建议让后台修改为按一定的规则来拼接。比如1|2|3代替数组。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题