内容简介:在最近的一个项目中后段要求直接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 作为博客评论组件
- 作为项目经理应该串联起哪些流程
- 作为产品经理,如何做好项目管理?
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Linux内核设计与实现(原书第3版)
Robert Love / 陈莉君、康华 / 机械工业出版社华章公司 / 2011-4-30 / 69.00元
《Linux内核设计与实现(原书第3版)》详细描述了Linux内核的设计与实现。内核代码的编写者、开发者以及程序开发人员都可以通过阅读本书受益,他们可以更好理解操作系统原理,并将其应用在自己的编码中以提高效率和生产率。 《Linux内核设计与实现(原书第3版)》详细描述了Linux内核的主要子系统和特点,包括Linux内核的设计、实现和接口。从理论到实践涵盖了Linux内核的方方面面,可以满......一起来看看 《Linux内核设计与实现(原书第3版)》 这本书的介绍吧!