iOS – AFNetWorking post方法将数组作为参数上传

栏目: IOS · 发布时间: 6年前

内容简介:在最近的一个项目中后段要求直接post 一个数组位参数传给服务器,在之前的项目中,我们只是将字典作为参数传给服务器,直接将字典作为参数的情况并不多见。于是在网上查阅了一些资料发现很多人都是将数组转成json然后再去上传,但是我传过去之后,服务器告诉我参数错误 WTF!!最后发现罪魁祸手居然是AFNetWorking框架的问题上传的参数格式

在最近的一个项目中后段要求直接post 一个数组位参数传给服务器,在之前的项目中,我们只是将字典作为参数传给服务器,直接将字典作为参数的情况并不多见。于是在网上查阅了一些资料发现很多人都是将数组转成json然后再去上传,但是我传过去之后,服务器告诉我参数错误 WTF!!

最后发现罪魁祸手居然是AFNetWorking框架的问题

iOS – AFNetWorking post方法将数组作为参数上传

上传的参数格式

修改方法如下

找到AFNetWorking 下的AFURLRequestSerialization.m文件然后再找到AFQueryStringPairsFromKeyAndValue方法会看到下图这句话

iOS – AFNetWorking post方法将数组作为参数上传

直接跟改为

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

iOS – AFNetWorking post方法将数组作为参数上传

iOS – AFNetWorking post方法将数组作为参数上传 微信打赏

iOS – AFNetWorking post方法将数组作为参数上传 支付宝打赏

感谢您对作者Miya的打赏,我们会更加努力!    如果您想成为作者,请点我


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

我看电商3:零售的变革

我看电商3:零售的变革

黄若 / 电子工业出版社 / 2018-4 / 49

在《我看电商3:零售的变革》之前,黄若先生的“我看电商”系列图书《我看电商》《再看电商》《我看电商2》,均为行业畅销书。黄若先生的图书有两大特如一是干货满满,二是观点鲜明。 “新零售”是眼下的热门词。在2017年里,数以万计的企业以“新零售”作为标识进入市场。但是社会上对“新零售“存在着各种模糊的定义和不尽相同的解读。 《我看电商3:零售的变革》中明确提出:新零售不应过分关注于渠道形式......一起来看看 《我看电商3:零售的变革》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

随机密码生成器
随机密码生成器

多种字符组合密码