一、先发结论
前提
1、服务端接口支持JSON请求
2、iOS端,AFHTTPSessionManager的requestSerializer属性,使用[AFJSONRequestSerializer serializer]
如上即可将数组、字典参数发送给服务端。(不需要将数组、字典先转成json串了)
二、再说原理
发起请求后,parameters(入参)在AFNetworking中的表现如何呢?
1、发起post请求
2、触发生成dataTask的封装函数
3、触发requestSerializer封装的函数
4、触发requestSerializer加工请求的函数
这里AFNetworking作者通过协议接口的手法,根据requestSerializer对象是哪个类,就触发哪个类的具体接口实现函数。常用的如下
AFHTTPRequestSerializer 是URL编码格式
AFJSONRequestSerializer 是JSON编码格式
5、本文Demo使用的是AFJSONRequestSerializer类对象,所以触发了AFJSONRequestSerializer的实现函数
原理分析就到这儿吧。