前言
之前的项目上传数据的格式要求将数组作为字段数据进行post,结果直接上传之后发现服务器收到的数据之间带有[] ,网上找了各种资料无果。最后在AFNetworking的源码里找到了解决方法。
解决办法
1.在AFNetworking的源码中找到AFURLRequestSerialization这个类;
2.在.m文件中在AFQueryStringPairsFromKeyAndValue这个方法中,找到
else if ([value isKindOfClass:[NSArray class]]) {
NSArray *array = value;
for (id nestedValue in array) {
[mutableQueryStringComponents addObjectsFromArray:AFQueryStringPairsFromKeyAndValue([NSString stringWithFormat:@"%@[]", key], nestedValue)];
}
随后将
[mutableQueryStringComponents addObjectsFromArray:AFQueryStringPairsFromKeyAndValue([NSString stringWithFormat:@"%@[]", key], nestedValue)];
中的"[NSString stringWithFormat:@"%@[]", key]" []去掉!
完成以上修改之后再上传数组字段数据就OK了!
当然这样的上传结构最好建议还是接口进行修改。
如果觉得对你有帮助的,麻烦点个赞哈~谢谢!
网友评论
你之前post上传的数组是这种格式的吗
mobile = (
{
name = liyi;
}
)
修改了你的办法后还是上传失败。你是有对数组进行处理吗
我的上传格式是:
{mobile:[123,321,321],
name:[liyi,liyi,liyi]
}
key对应一个arr