内容简介:在最近的一个项目中后段要求直接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 作为博客评论组件
- 作为项目经理应该串联起哪些流程
- 作为产品经理,如何做好项目管理?
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
与孩子一起学编程
[美] 桑德Warren Sande、Carter Sande / 苏金国、姚曜 等 / 人民邮电出版社 / 2010-11 / 65.00元
一本老少咸宜的编程入门奇书!一册在手,你完全可以带着自己的孩子,跟随Sande父子组合在轻松的氛围中熟悉那些编程概念,如内存、循环、输入和输出、数据结构和图形用户界面等。这些知识一点儿也不高深,听起来备感亲切,书中言语幽默风趣而不失真义,让学习过程充满乐趣。细心的作者还配上了孩子们都喜欢的可爱漫画和经过运行测试的程序示例,教你用最易编写和最易理解的Python语言,写出你梦想中的游戏程序。 ......一起来看看 《与孩子一起学编程》 这本书的介绍吧!