美文网首页
android 网络方案

android 网络方案

作者: 进击的杰爷 | 来源:发表于2017-04-30 20:46 被阅读0次

    在56视频那会,就开始接触AQuery。直到 2017,网络请求这块才真正换成 OkHttp。掐指一算,竟已有好几个年头。

    google了下,相关资料都好少了。感叹不已。

    言归正常,下面记录下这一两年火热的 android 网络方案:RX + Retrofix2 + OkHttp3

    App里少不了网络请求,总不能每次都 new Retrofix 或者 new OkHttpClient 增加不必要的开销。

    所以搞了个单例,如下图:

    这里需要注意的是 context,这玩意儿很容易造成内存泄露。

    OkHttpClient 的拦截器机制,看起来真是舒服,一目了然。

    根据上图,代码里的流程就是:(1)网络请求 -> (2)添加公共参数 -> (3)添加header -> (4)post body的内容转换(如果是post请求)-> (5)记录 api 埋点请求响应时间(如果命中)。

    这里需要注意的是,获取response 后,会倒序路过所有拦截器。比如 ApiCpInterceptor。

    如图所示,记录了请求开始时间与结束时间。

    获取完 response 并路过所有拦截器后,OkHttp的任务完成。

    轮到 Retrofix 上场,不对,其实一开始调用就上场了哈。后续补充,先继续 response。此时,会调用TokenCheckConverterFactory,一开始是直接使用 GsonConverterFactory ,但问题来了,业务上需要对token失效的情况做出反应。如果用 GsonConverterFactory的话,相关处理将继续往上抛,可能就到 Rx 层面上了。所以自定义了 ConverterFactory,Retrofix 也是超赞的。

    最后,看看调用的接口定义与调用方法。

    Rx 也超赞,由于要去看电影了,写得很粗糙。闪人。

    相关文章

      网友评论

          本文标题:android 网络方案

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