后台给了一个接口,POST请求提交一个数组,数组里面嵌套的是一个个对象。
在请求的时候,发现一直报错,参数错误 Android那边已经调通,那可能是我这边的问题了
通过抓包发现,我post 提交的参数有问题
先看下接口的规则
comment%5B%5D%5Bauto_id%5D=37&comment%5B%5D%5Bcontent%5D=Assadasd&comment%5B%5D%5Bauto_id%5D=37&comment%5B%5D%5Bcontent%5D=Assadasd&comment%5B%5D%5Bauto_id%5D=38&comment%5B%5D%5Bcontent%5D=Asdasd&comment%5B%5D%5Bauto_id%5D=38&comment%5B%5D%5Bcontent%5D=Asdasd&id=29
这是我提交的参数,可以看到 我comment数组里缺少了索引,找到问题就好解决了。去看AFN的源码 找到AFURLRequestSerialization.m 文件 发现在对数组类型的post参数进行转化时,的确是没有加上索引
然后我就自己改了一下,
添加了索引
[mutableQueryStringComponents addObjectsFromArray:AFQueryStringPairsFromKeyAndValue([NSString stringWithFormat:@"%@[%lu]", key,(unsigned long)[array indexOfObject:nestedValue]], nestedValue)];
修改后,请求成功了。
可以说是自己对AFN的理解还不够啊,同时幸好有抓包,能帮我快速定位问题所在