iOS网络请求参数含数组和字典-AFNetworking

一、先发结论

前提

1、服务端接口支持JSON请求

2、iOS端,AFHTTPSessionManager的requestSerializer属性,使用[AFJSONRequestSerializer serializer]

代码Demo

如上即可将数组、字典参数发送给服务端。(不需要将数组、字典先转成json串了)

二、再说原理

发起请求后,parameters(入参)在AFNetworking中的表现如何呢?

1、发起post请求

2、触发生成dataTask的封装函数

3、触发requestSerializer封装的函数

4、触发requestSerializer加工请求的函数

这里AFNetworking作者通过多态的手法,根据requestSerializer对象是哪个类,就触发哪个类的具体函数。常用的如下

AFHTTPRequestSerializer 是URL编码格式

AFJSONRequestSerializer 是JSON编码格式

5、本文Demo使用的是AFJSONRequestSerializer类对象,所以触发了AFJSONRequestSerializer的实现函数

原理分析就到这儿吧。