博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS 使用AFN put请求 参数要求以JSON格式
阅读量:6081 次
发布时间:2019-06-20

本文共 1873 字,大约阅读时间需要 6 分钟。

开发中,我们接触就多得请求方式是postget,但是有时我们需要用到put方式,然而早就帮我们封装好了(万幸)。 并且后台需要我们传递JSON格式的数据,这时我们会想那还不简单,把以往的字典转换为JSON不就好了

NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dict options:NSJSONWritingPrettyPrinted error:&parseError];NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];复制代码

然后后台反馈的结果是传递的json格式解析不出来,于是百度之后,发现这样才是正确的写法(以下把AFN二次封装了一遍)

#pragma mark -- PUT请求 --+ (void)putWithURLString:(NSString *)URLString               parameters:(id)parameters                  success:(void (^)(id))success                  failure:(void (^)(NSError *))failure {    AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];    manager.responseSerializer = [AFJSONResponseSerializer serializer];    manager.requestSerializer = [AFJSONRequestSerializer serializer];    [manager.requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Accept"];        [manager PUT:URLString parameters:parameters success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {                if (success) {            success(responseObject);        }    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {                if (failure) {            failure(error);        }    }];}复制代码

这时你会发现还是上传不成功,原因是受到JSON格式的思维误区,以为还要转换为JSON格式,其实是不需要的,直接传递字典形式就可以了 #####下面为调用方法

NSDictionary *parameter = @{@"defeatNote":self.textView.text,@"leadsId":@([self.leadsInfoId integerValue]),@"defeatType":@"7"};[ZYNetWorking putWithURLString:urlString parameters:parameter success:^(id responseObject) {             // 如果写这句话 会导致程序崩溃         //id obj = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers error:nil];                  NSLog(@"%@",responseObject);    } failure:^(NSError *error) {                    }];复制代码

转载于:https://juejin.im/post/5a33f492f265da431523f978

你可能感兴趣的文章
SQL Server 2014新特性——Buffer Pool扩展
查看>>
需求的陷阱
查看>>
系统架构简单图解
查看>>
浅谈加密技术
查看>>
centOS7下安装GUI图形界面
查看>>
一张图透析阿里云API应用创新大赛
查看>>
sql重复行求和
查看>>
Microsoft Dynamics CRM 2013 and 2011 Update Rollups and Service Packs
查看>>
transient的理解
查看>>
python中if __name__ == '__main__': 介绍
查看>>
HackRF实现无线门铃信号分析重放
查看>>
Windows源码安装PyTorch 0.4
查看>>
AI开发者福音!阿里云推出国内首个基于英伟达NGC的GPU优化容器
查看>>
CentOS6安装和配置rsync
查看>>
在真机里安装 ubuntu 14.04和一些常用的软件(二)
查看>>
python2.6升级到2.7
查看>>
Unity SLua 如何调用Unity中C#方法
查看>>
MyBatis排序时使用order by 动态参数时需要注意,用$而不是#
查看>>
linux基础命令-查看系统状态-free -m以及top命令详解
查看>>
动态代理
查看>>