博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Retrofit与Rxjava封装终结者(一)基本用法
阅读量:6878 次
发布时间:2019-06-26

本文共 2065 字,大约阅读时间需要 6 分钟。

本文封装的框架包含了自动解析服务器返回的数据,token刷新,异常统一处理,先看看封装后的调用方式,测试用的数据是在One开放的API。

步骤

  • 定义一个RxUrl对象
//    ------------服务器地址------------------//    String SERVER_ADDRESS = "http://rest.wufazhuce.com/";       //GET请求    @GET("OneForWeb/one/getHpinfo")    Observable
getData(@QueryMap Map
map); //POST请求数据 @FormUrlEncoded @POST("OneForWeb/one/getHpinfo") Observable
postData(@FieldMap Map
map); //POST上传图片 @Multipart @POST("项目的url") Observable
evaluatePic(@Part MultipartBody.Part part,@Part("_t") RequestBody token);复制代码
  • 构造参数
//GET或POST请求数据 HashMap
hashMap = new HashMap<>(); hashMap.put("strDate", "2017-03-25");//POST上传图片 RequestBody tokenBody = RequestBody.create(MediaType.parse("text/plain"), PrefUtils.getString(mContext, Constant.USER_TOKEN, "")); RequestBody imageBody = RequestBody.create(MediaType.parse("multipart/form-data"), mFileSparse.get(number)); MultipartBody.Part imageBodyPart = MultipartBody.Part.createFormData("file", mFileSparse.get(number).getName(), imageBody);复制代码
  • 创建一个Observable跟RxSubscriber
//GET或POST请求数据        Observable
weather = RxRequest.getInstance().getProxy(false).postData(hashMap); RxSubscriber subscriber = new RxSubscriber(this, new Callback
() { @Override public void onSuccess(OneBean oneBean) { tvData.setText(oneBean.getHpEntity().getStrContent()); } });//POST上传图片 Observable
observable = RxRequest.getInstance().getProxy(false).evaluatePic(imageBodyPart,tokenBody); RxSubscriber subscriber = new RxSubscriber(this, new Callback
() { @Override public void onNext(CommonBean commonBean) { } });复制代码
  • 发起请求
RequestManager.getInstance().sendRequest(weather, subscriber);复制代码

调用的时候需要一个Observable对象以及RxSubscriber,然后再OnSuccess中拿到解析好的之前定义的对象,就可以处理业务逻辑了。最近项目要上线,忙成狗,先介绍用法,后期再详细讲解一下原理。

转载地址:http://sygfl.baihongyu.com/

你可能感兴趣的文章
ping多线程
查看>>
PMP每日一题
查看>>
python中struct.unpack的用法
查看>>
解决物理内存足够时VMware 提示物理内存不足。。。
查看>>
java socket常见异常
查看>>
Dubbo与Zookeeper、SpringMVC整合和使用
查看>>
Spring中的属性scope
查看>>
SpringApplication你不知道的那些事!
查看>>
为什么比别人办事效率慢?因为你没用这几款强大的搜索软件!
查看>>
linux菜鸟基础学习 (二) 中篇
查看>>
配置网络
查看>>
0021-使用JDBC向Kudu表插入中文字符-cast的秘密
查看>>
Kubernetes 1.14发布:对Windows节点的生产级支持、Kubectl更新与持久本地卷
查看>>
PHP获取未来七天的日期和星期
查看>>
web防火墙的开通和部署
查看>>
驰骋工作流引擎,表单引擎工作事务单元测试报告
查看>>
删除的文件如何恢复?详细方法介绍
查看>>
PDF转换CAD有什么方法
查看>>
物联网不可忽视的安全隐患
查看>>
发票扫描仪的前景
查看>>