安卓开发博客

Android快速开发架构PlanA(四),网络请求篇,划重点(

2018-07-12  本文已影响36人  Alt丶

Android快速开发架构PlanA,一周一个APP,持续维护中!
Android快速开发架构PlanA(一),船新版本的BaseActivity
Android快速开发架构PlanA(二),简单粗暴的路由管理PRouter
Android快速开发架构PlanA(三),你一定会用上的工具类
Android快速开发架构PlanA(四),网络请求篇,划重点(必考)
Android快速开发架构PlanA(五),文件上传下载了解一下
Android快速开发架构PlanA(六),抱歉,这些自定义控件真的可以让你为所欲为
Android快速开发架构PlanA(七),隐藏技能:PhotoBrowse图片浏览

1.怎么说?

  PlanA架构集成第四篇,PlanA中网络请求的使用,相信很多开发者在Android的开发中都有自己的网络请求体系,更适合自己,这里的网络请求方面也做了高度封装,针对多种情况,可以选择使用,使用简单,方便。
  PlanA中的网络请求主要是Retrofit2+Okhttp3+Rxjava2的封装,不需要了解底层的实现思路,你只需两行代码即可实现高效,快速的网络请求。

2.初始化

RetrofitClient.initBaseUrl(BASE_URL);

3.发起请求

GET请求(doGet:Data模型解析返回,executeGet:原始数据返回)

POST请求(与上面Get一致,根据自己的数据返回需要二选一)

取消网络请求

 //taskId 为网络请求任务Id,例如:String taskId = RetrofitClient.getInstance().doGet(url,iBaseBiz,iCommonHttpCallback);
 RetrofitClient.getInstance().cancelRequest(taskId);

会不会有点懵?别急,下面有代码demo哈,滑下去嘛!

参数说明

  • url:接口的相对地址,如:"api/user/loginAction"

  • requestCode:请求码,主要用于多个请求并行的时候,在请求成功回调接口里面区分请求对应的响应

  • params:请求参数,如下详细实例:

     RequestParams.getInstance().addParam(key,value).addParam(key,value)...;//链式添加参数
    
     RequestParams.paramMap //参数的map对象,即上面的params
    
     demo:添加参数为id=1,name=Kevin
    
           RequestParams.getInstance().addParam("id",1).addParam("name","Kevin");
    
           RequestParams.paramMap //这个对象返回的就是id=1,name=Kevin的map对象
    
  • IBaseBiz:业务接口基类(MVP常规业务接口模式),如下详细实例:

    • 建议新建一个IMyBaseBiz来继承IBaseBiz,这样就可以在你新建的业务接口中实现你想要的更多方法了

    • IBaseBiz 用到网络请求的地方就可以在Activity里实现,主要有以下两个实现方法

      getActivity() 获取Activity对象
      
      toActivity() 跳到UI执行的方法
      
  • ICommonHttpCallback:请求回调接口,如下详细实例:

     onResponse(requestCode,data); //请求成功,返回请求的数据
    
     onSuccess(requestCode,data); 回调正确状态的data数据 status:1
    
     onException(requestCode,data); 回调异常状态data数据 status!=1
    
     onError(requestCode,e); 回调错误方法,诸如404,500,timeout等
    
     requestCode 为请求码,主要用于多个请求并行的时候,在请求成功回调接口里面区分请求对应的响应
    
     data 请求返回的数据
    
     e 请求失败的Throwable
    

请求数据返回实例

  • Data / ResponseBody 请求成功返回类型

    Data:doGet()或者doPost()请求所返回的数据解析模型
    
    {
        status : 1,
        message : "请求成功",
        data : Object
    }
    
    ResponseBody : executeGet()或者executePost()请求所返回的数据,在ononResponse()回调方法中将会直接返回请求响应的字符串数据
    

4.请求实例demo

重要说明:doGet()和doPost()方法进行网络请求时,请求成功会回调onResponse()和onSuccess(),这是因为回调数据解析是采用的Data标准返回模型来做的解析,拦截了异常返回数据,那么executeGet()和executePost()方法的请求回调则只有onResponse()了,请求到了什么就返回什么数据,即原始数据返回。

重要的事再说一遍,要根据服务器返回的数据格式来调不同的请求方法(doXxx或executeXxx),不然会出现数据解析错误哦(即不规则返回数据按照Data模型解析报错)。

PlanA网络请求框架持续优化中,有疑问或者改进意见请留言↓↓↓

上一篇 下一篇

猜你喜欢

热点阅读