开发流程之四:网络请求管理类HttpClient
2017-11-16 本文已影响19人
隰有荷
本文与网络请求框架那篇文章大致类似,但封装的更为完善,介绍的也更详细,在项目中所有用到的网络请求都需要该类参与。
首先
添加依赖库:
compile 'com.squareup.retrofit2:retrofit:2.1.0'compile 'com.squareup.retrofit2:converter-gson:2.1.0'
然后,写一个独立的网络请求管理类HttpClient,其中有网络请求的基地址,各种超时时长等属性,配置日志拦截等信息,图中涉及的类,本文均会一一贴出,HttpClient类如下:
如上图所示:
config方法中有baseUrl这个参数,为网络请求的基地址,该方法在BaseApplication中进行调用,并传入参数即可,注意一点,基地址的结尾为"/"
在BaseApplication中进行调用并传参其中:EnvUtil如下,syncIsDebug方法也要在BaseApplication中进行调用,以此设置app运行环境
EnvUtil类其中:日志拦截器HttpInterceptor(context)代码稍多,分两图截取,如下:
HttpInterceptor上半部分 HttpInterceptor下半部分以上均为使用网络请求的准备工作,下面介绍如何使用。
新建一个interface接口 NetworkAPI, 其中的某一个方法如下:
可见,其中的ResponseListBean这个信息类是请求的列表数据返回后存入的基础类,其后的CatPrizeCommentBean这个信息类是页面中需要用到的列表数据信息类。
请求列表的方法所以ResponseListBean是啥样的?如下:
该类中所有字段要根据后台所给来写,我们主要就是想要获取data这个对象
基础列表信息类ResponseListBean在页面中使用:
使用该网络请求获取列表数据同样的,如果要获取的数据并不是列表而是空或者是简单的字段,如点个赞
请求方法中不需要后台新数据的方法其中的ResponseBean与ResponseListBean大同小异,如下:
ResponseBean信息类若需要从返回的数据中获取数据,也可以在其后添加当前页面所需的数据信息类,写法与获取列表数据一样。
如上各步骤,一套从搭建网络请求到获取后台数据的流程走完。
结束。