模型化网络请求,对Alamofire的封装

之前都在用YTKNetwork进行的开发, 刚接触swift的时候,发现使用Alamofire还是有点不太方便的, 请求的代码都写在了控制器里, 太冗余了.于是就写了一个类似于YTKNetwork的小工具.

直接上代码. 首先要做的是对Alamofire进行一层封装,一是更方便使用, 二是以后更换网络框架的时候,更轻松.


QQ20160614-0.png

我们新建一个工具类单例,继承自Alamofire.Manager,
可以看到我们先定义了一个Finshied闭包,用于处理网络请求的回调.
然后是初始化方法.
接着是两个请求函数, 第一个只是设置了一个固定url,其实调用的是第二个函数. 而第二个函数也很简单,就是使用managerde的request方法.去发送请求, 然后再通过finished把结果传到外面.

然后我们再创建一个请求基类:


QQ20160614-1.png

内部也很简单,就是一个参数字典, 以及一个发送请求的函数. 这个函数会把参数字典和finished闭包作为参数,然后调用网络工具的请求方法.

我们以后的请求只要继承自这个基类,例如我在聚合上申请了一个接口,是查看全国油价的,现在我想创建一个查看油价的请求:


QQ20160614-3.png

我们的init方法接受一个key,然后把key添加到参数字典.

最后外界的调用是这样的:


QQ20160614-4.png

生成一个请求变量,调用sendRequest方法,然后把要做的事情写在finished这个闭包里面.

github上demo的地址:https://github.com/byljbdh/ALNModelNetworkTool
以上.

推荐阅读更多精彩内容