美文网首页Android知识Android开发
从无到有 项目中用到的封装网络框架(一)

从无到有 项目中用到的封装网络框架(一)

作者: 溢出的幸福 | 来源:发表于2016-11-17 12:13 被阅读0次

一个基于Xutils3的网络封装

用过xutils的朋友都知道网络请求的回调是在实现了Callback.CommonCallBack<T>接口;然后通过实现onSuccess(),onError(),onFinished(),onCancelled()方法来处理返回的结果;首先看下后台给的数据结构。如下图所示这是我们后台固定的一个数据结构。Msg是用于判断成功还是失败的描述信息,Data是我们要获取的具体内容,Code表示返回的一个处理码

返回的数据.png

首先处理封装Callback.CommonCallBack<>接口,要处理成功以后返回的msg,和处理失败以后返回的msg。首先实现Callback.CommonCallback<String>接口  在返回的onSuncess(String result)的方法里面把回调的result转为jsonobject对象,在通过json解析转成对象,并且把通过code校验把这个对象通过Handler发射出去,在onError里面一样发送错误请求的message,统一在外层回调处理。这样的话我们的构造参数就需要3个了,第一个用于gson解析得到对象,第二个用于发送成功失败得到的数据,第三个是在哪个what里面执行(错误的object在what+1里面进行处理)。

如上所示,我们就可以自己在实现hander以后自己外层处理网络请求。这样封装的话也会有点问题就是如果有外层的acivity类finish()以后,如果我们的message还没取出来,message就持有handler的引用,handler就会持有当前acivity的引用,得不到释放,容易发生内存泄露,所以我们可以用弱引用给handler在加一层封装防止内存泄露

综合应用 如下图所示 用Ok的话也可以按照这样的模式在封装一次

相关文章

  • 从无到有 项目中用到的封装网络框架(一)

    一个基于Xutils3的网络封装 用过xutils的朋友都知道网络请求的回调是在实现了Callback.Commo...

  • 开发流程之四:网络请求管理类HttpClient

    本文与网络请求框架那篇文章大致类似,但封装的更为完善,介绍的也更详细,在项目中所有用到的网络请求都需要该类参与。 ...

  • Android中HttpURLConnection

    大部分安卓项目开发中,网络请求都是用封装好的网络框架,如:okhttp、nohttp、volley等。导致基础的H...

  • Retrofit2(2.4.0)

    对okhttp3进行封装的网络框架github 1. 该框架用到的东西 该框架用了大量的注解该框架依赖于okhtt...

  • 网络请求(接口)

    项目里网络请求是必不可少的,框架使用的是AFNetworking三方库。在其基础上做了一层封装,你使用到的是JMR...

  • 【Android开发学Flutter】封装网络请求

    HTTP网络请求每个项目会用到,封装一个好用HTTP网络请求工具很有必要,下面是基于 dio 进行的二次封装。 封...

  • Okhttp(Kotlin版)流程解读

    OkHttp是主流的网络请求框架,Android网络请求基本的项目封装也是有Rxjava+Retrofit+Okh...

  • iOS 推荐优秀 GitHub

    SJNetwork - 高度封装AFNetworking的网络框架 作者:J_Knight_ 项目地址:hhttp...

  • AngularJS初识

    最近公司的项目前端框架用到了VX框架,其框架是在AngularJS上做了一点小小的封装,然后就有想法把Angula...

  • 框架(个人纪录)

    最近想搭建一个android项目框架,用到的开源框架记录如下: Android 网络框架之Retrofit2使用详...

网友评论

    本文标题:从无到有 项目中用到的封装网络框架(一)

    本文链接:https://www.haomeiwen.com/subject/beozsttx.html