安卓资源收集RxJAva OKHttp Retrofit安卓开发学习

开发流程之四:网络请求管理类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信息类

若需要从返回的数据中获取数据,也可以在其后添加当前页面所需的数据信息类,写法与获取列表数据一样。

如上各步骤,一套从搭建网络请求到获取后台数据的流程走完。

结束。

上一篇下一篇

猜你喜欢

热点阅读