ActionHttp(基于okhttp3的极简封装)

捣鼓一下网络工具

初始化


初始化工作

其中TestService类和MyProcessor


TestService类中有三个抽象方法,分别返回域名、端口和服务器名(项目名,由于做得Javaweb后台多,一般都是这样,可根据需要修改)而MyProcessor类是用来对参数进行处理,如需要加密时,需要添加统一参数时。

使用


完成一个接口只要写两个类,一个请求类(姑且这么叫),一个是返回的数据实体类,其中请求类如下


请求类action

从上往下分别是,先继承BaseRequestAction,然后需要实现两个抽象方法getActionApi()和getResultType(),getActionApi()返回本次请求的接口,getResultType()返回一个确定的类型,但是写法是固定的,也就是TypeToken<BaseResultEntity<T>(){}.getType();T即为我们最终需要的实体类,需要注意的是,T是data中的数据,也就是数据格式如下

{

"code":"1",

"msg":"成功",

"data":""

}中的data的实体类,这里只要是确定的,都可以解析出来,比如传一个String也行,List<T>等等。如果接口不是以这种格式返回的,抱歉,叫后台改吧。

也就是说,BaseResultEntity其实对应了后台返回数据的格式,需要根据实际后台返回的字段修改,如


对应后台返回数据的BaseResultEntity

这里就是对应了后台返回

{

"resultCode":"1",

"resultDes":"成功",

"resultData":""

}

再看回action类,定义了几个参数name、password、type表示这个接口需要的参数,其中前两个有一个注解@Encryption,当添加这个注解的时候,顾名思义表示是需要加密,到时候MyProcessor类中的EncryptionProcess方法就会回调。自此已经完成了一个接口所需要的东西,在需要的地方调用即可得到结果,其中如果resultCode的值是"1"我假设后台返回1时是正常的结果,就会回调下面的方法,如果不是1怎么办,我还要处理那些不是1的结果啊,比如提示用户,又或者改变界面等等

@Override

public voidonResult(LoginBean result) {

}

很简答,实现下面这个方法


onError方法

所以的其他情况都会回调到这个方法,其中


ActionException包含了绝大部分错误情况

我们根据exceptionType来做啥都行,包括数据解析失败也会回调这个方法。还有一点是,当doActionPost方法传入Context时会自动弹出加载框,传null则不弹。

设计思想:力求最简。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容