内容简介:在最近的一个项目中后段要求直接post 一个数组位参数传给服务器,在之前的项目中,我们只是将字典作为参数传给服务器,直接将字典作为参数的情况并不多见。于是在网上查阅了一些资料发现很多人都是将数组转成json然后再去上传,但是我传过去之后,服务器告诉我参数错误 WTF!!最后发现罪魁祸手居然是AFNetWorking框架的问题上传的参数格式
在最近的一个项目中后段要求直接post 一个数组位参数传给服务器,在之前的项目中,我们只是将字典作为参数传给服务器,直接将字典作为参数的情况并不多见。于是在网上查阅了一些资料发现很多人都是将数组转成json然后再去上传,但是我传过去之后,服务器告诉我参数错误 WTF!!
最后发现罪魁祸手居然是AFNetWorking框架的问题
上传的参数格式
修改方法如下
找到AFNetWorking 下的AFURLRequestSerialization.m文件然后再找到AFQueryStringPairsFromKeyAndValue方法会看到下图这句话
直接跟改为
for (id nestedValue in array) {
[mutableQueryStringComponents addObjectsFromArray:
AFQueryStringPairsFromKeyAndValue(
[NSString stringWithFormat:@"%@[%lu]", key,(unsigned long)[array indexOfObject:nestedValue]], nestedValue)];
}
然后直接传数组就好了
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager] ;
manager.requestSerializer = [AFJSONRequestSerializer serializer];
[manager.requestSerializer setValue:[[NSUserDefaults standardUserDefaults]
objectForKey:@”token”] forHTTPHeaderField:@”token”]; manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects: @”application/json”, @”text/json”, @”text/html”, @”text/plain”, @”text/javascript”, nil]; manager.securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeNone]; NSString *url = [NSString stringWithFormat:@”%@”,@“你的url”] ; NSDictionary *parameter = @{ @”goodsName” : [self stringForNull:self.goodsDetailDict[@”goodsName”]], @”goodsId” : self.idString, @”number” : @”1″ } ; NSArray *parameterArr = [NSArray arrayWithObject:parameter] ; NSLog(@”url = %@”,url) ; NSLog(@”parameter = %@”,parameterArr) ;
[manager POST:url
parameters:parameterArr
progress:nil
success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
NSDictionary *dict = (NSDictionary *)responseObject ;
NSLog(@”dict = %@”,dict) ;
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
NSLog(@”error%@”,error) ;
}]
;
转载时请注明出处及相应链接,本文永久地址:https://blog.yayuanzi.com/25350.html
微信打赏
支付宝打赏
感谢您对作者Miya的打赏,我们会更加努力! 如果您想成为作者,请点我
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 将数组和矩阵传递给函数,作为C中指针的指针和指针
- 使用Elasticsearch作为主数据存储
- 如何把MongoDB作为循环队列
- 使用 utterances 作为博客评论组件
- 作为项目经理应该串联起哪些流程
- 作为产品经理,如何做好项目管理?
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Learning JavaScript
Shelley Powers / Oreilly & Associates Inc / 2006-10-17 / $29.99
As web browsers have become more capable and standards compliant, JavaScript has grown in prominence. JavaScript lets designers add sparkle and life to web pages, while more complex JavaScript has led......一起来看看 《Learning JavaScript》 这本书的介绍吧!
HTML 压缩/解压工具
在线压缩/解压 HTML 代码
Markdown 在线编辑器
Markdown 在线编辑器