php 接受ios参数类型,iOS开发中的AFNetworking使用之请求参数类型和接收数据类型...

接收数据类型

现在客户端开发中接收后台返回的数据形式最常用的就是JSON数据,我们在使用AFNetworking这个框架在请求数据的时候可以设置接收数据类型。

如果不设置,且后台返回的二进制,默认接收到的数据是NSData类型,即二进制数据,我们要想使用它需要将其转成JSON类型的数据然后使用字典(NSDictionary)(一般都是字典)去接收。我们也可以设置接收的数据类型,将接收的数据类型设置成JSON类型,那么我们就可以直接用字典去接收返回的数据。

设置代码:

manager.responseSerializer = [AFJSONResponseSerializer serializer]

manager是AFHTTPSessionManager的一个实例。

2019.4.3补充:

[AFHTTPResponseSerializer serializer]和[AFJSONResponseSerializer serializer]的区别:

如果使用前者的话,那么返回的JSON数据是NSData类型需要我们再手动将NSData数据转成OC中的字典或数组,转换代码:

NSDictionary *jsonDict = [NSJSONSerialization JSONObjectWithData:responseObject options:kNilOptions error:&error];

如果使用后者的话,那么AFNetworking已经将NSData数据转成了OC中的字典或数组,我们可以直接使用字典或数组去接收。

我们还可以将NSData类型的数据直接转成JSON字符串,代码:

NSString * str = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding]; // 可转成JSON字符串

请求参数数据类型

同样是使用AFNetworking进行数据请求,我们在给后台发送数据的时候,可以对请求参数的数据类型进行设置。默认给后台传的NSData类型数据,即二进制数据。同样我们可以将上传的数据类型设置成后台需要的JSON类型。

设置代码:

manager.requestSerializer = [AFJSONRequestSerializer serializer]

我们如何去设置请求参数的数据类型需要看后台需要什么类型的数据,如果两端数据类型不统一,请求是无法成功的。

补充一张图:

4183fa73f091

请求的数据格式.png

2019.3.5补充

我们在postman上可以看到POST请求的body体内的数据类型有四种:form-data、x-www-form-urlencoded、raw、binary

4183fa73f091

0.form-data.png

form-data表示既可以上传键值对也可以上传文件。

4183fa73f091

0.x-www.form-urlencoded.png

x-www-form-urlencoded表示会将表单内的数据转换成键值对。

raw

4183fa73f091

0.-raw.png

raw表示可以上传任意类型的文本,包括Text、json、xml、html。

4183fa73f091

0.binary.png

binary表示只可以上传二进制数据,通常用来上传文件。

****本篇文章到这里就结束了,愿大家加班不多工资多,男同胞都有女朋友,女同胞都有男朋友。😊***

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值