Novate 封装Rxjava2.0 的使用
/*** 发送短信验证码*/@OnClick(R.id.send_code)void sendCodeClick(){//获取验证码// parameters.put("token", "5cce476d-ce9e-49c1-8f94-b6abf84325c7");parameters.put("mobile", "13721413520");
// 网络请求hManager.sendCodeRequest(parameters);
// 回调函数hManager.successCallBack(new RequestCallBack() {@Overridepublic void successCallBack(Object obj) {Log.e("成功222",obj.toString());}@Overridepublic void erroeCallBack(Exception e) {Log.e("错误",e.getMessage());}});}public void sendCodeRequest(Map<String, Object> parameter){
// BaseApiService api = novate.create(BaseApiService.class);
// parameters.put("token", "5cce476d-ce9e-49c1-8f94-b6abf84325c7");if(novate == null){novate = new Novate.Builder(this.mContext).addParameters(parameter).connectTimeout(5).baseUrl(ApiConfig.BASE_URL).addLog(true).build();}// api.cli/v1/society/vehicle/onsitenovate.get("api/v1/lib/third/sms/send", parameter, new MyBaseSubscriber<ResponseBody>(LoginActivity.this.mContext) {@Overridepublic void onError(Throwable e) {Log.e("错误码",e.getCode() + "");Log.e("信息",e.getMessage());Toast.makeText(LoginActivity.this, e.getMessage(), Toast.LENGTH_SHORT).show();}@Overridepublic void onNext(ResponseBody responseBody) {try {if (responseBody == null){//服务器响应内容为空Log.e("响应","没有内容");}else{String jstr = new String(responseBody.bytes());ObjectMapper mapper = new ObjectMapper();
// 当反序列化json时,未知属性会引起的反序列化被打断,这里我们禁用未知属性打断反序列化功能,
// 因为,例如json里有10个属性,而我们的bean中只定义了2个属性,其它8个属性将被忽略mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);//从json映射到java对象,得到country对象后就可以遍历查找,下面遍历部分内容,能说明问题就可以了ListModel testJson = mapper.readValue(jstr, ListModel.class);Log.e("11",jstr);try {// 需要注意的是这里的Map实际为一个LikedHashMap,即链式哈希表,可以按照读入顺序遍历JsonNode node = mapper.readTree(jstr);List<JsonNode> nodes = node.findValues("content");for(JsonNode n:nodes) {Long vehicleId = n.findValue("vehicle").findValue("id").asLong();Log.e("id", "" + n.findValue("id").asLong());}// System.out.println(map.get("name") + ":" + map.get("age"));
// for (Object k : map.keySet()){// Log.e("map","key = " + k + "---value" + map.get(k));
// }} catch (JsonParseException e) {e.printStackTrace();} catch (JsonMappingException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}} catch (IOException e) {e.printStackTrace();}}});}/*** 在RxJava中主要有4个角色:ObservableSubjectObserverSubscriberObservable和Subject是两个“生产”实体,Observer和Subscriber是两个“消费”实体。说直白点Observable对应于观察者模式中的被观察者,而Observer和Subscriber对应于观察者模式中的观察者。Subscriber其实是一个实现了Observer的抽象类,后面我们分析源码的时候也会介绍到。Subject比较复杂,以后再分析。上一篇文章中我们说到RxJava中有个关键概念:事件。观察者Observer和被观察者Observable通过subscribe()方法实现订阅关系。从而Observable 可以在需要的时候发出事件来通知Observer。*//*private void rxJavaClick(){Observable.create(new Observable.OnSubscribe<Integer>(){@Overridepublic void call(Subscriber<? super Integer> subscriber) {for (int i = 0; i < 5; i++) {subscriber.onNext(i);}subscriber.onCompleted();}}).subscribe(new Observer<Integer>() {@Overridepublic void onCompleted() {Log.e("完成","执行的回调");}@Overridepublic void onError(java.lang.Throwable e) {Log.e("错误","错误信息");}// @Override
// public void onError(Throwable e) {
// Log.e("错误","错误信息");
// }@Overridepublic void onNext(Integer integer) {Log.e("执行者","执行次数" + integer);}});}
*/
Novate 封装Rxjava2.0 的使用相关推荐
- Novate:Retrofit2.0和RxJava的又一次完美改进加强(Tamic博客 -CSDN)
作者/Tamic http://blog.csdn.net/sk719887916/article/details/52195428 前言 用过RxJava和Retrofit的朋友,用久了就会发现Re ...
- 基于RxJava2.0+Retrofit2.0的文件下载实现(带进度,非覆写ResponseBody和拦截器)
基于RxJava2.0+Retrofit2.0的文件下载实现(带进度,非覆写ResponseBody和拦截器) 前言 本文主要讲解RxJava2.0+Retrofit2.0实现下载文件并带进度效果,如 ...
- RxJava2.0教程(四)
RxJava2.0教程(四) 上一节里我们学习了只使用Observable如何去解决上下游流速不均衡的问题, 之所以学习这个是因为Observable还是有很多它使用的场景, 有些朋友自从听说了Flo ...
- data后缀文件解码_封装ThinkPHP6.0通用文件上传
php中文网最新课程 每日17点准时技术干货分享 本文为php中文网认证作者:"wpj"投稿,欢迎加入php中文网有偿投稿计划! 本文实例讲述了封装ThinkPHP6通用文件上传方 ...
- Android使用Retrofit2.0和RxJava2.0处理网络请求
首先使用SpringBoot创建一个简单的SpringMVC工程. @RestController public class RetrofitController {@RequestMapping(& ...
- 基于RxJava2.0+Retrofit2.0超大文件分块(分片)上传(带进度)
当上传文件过大时,直接上传会增加服务器负载,负载过高会导致机器无法处理其他请求及操作,甚至导致宕机,这时分块上传是最佳选择.本次简单介绍两种分块上传文件方案(暂不考虑文件安全相关问题,如签名): 方案 ...
- MDIEMDIE双心封装版0.3.0.0RC6V2
MDIEMDIE双心封装版0.3.0.0 RC6V2 官方主页:http://cres.s28.xrea.com/ MDIE(多文档界面资源管理器)是一个MDI类型的文件管理软件,是代替资源管理器的一 ...
- 不同封装的0Ω电阻,到底可以过多大电流?
0Ω电阻到底能过多大电流?这个问题想必每位硬件工程师都查过.而与之相关的还有一个问题,那就是0Ω电阻的阻值到底有多大? 这两个问题本来是很简单的,答案应该也是很明确的,但网上网友却给出了不尽相同的答案 ...
- Android:这是一份非常详细的MVP+Rxjava2.0+Retrofit2.0相结合举例RecyclerView的实战篇章
MVP+Rxjava2.0+Retrofit2.0现在是非常火的组合 MVP相信大家已经在各大网站和各大佬的文章中已经了解很多理论的理解了 MVP其实就是M层请求数据 在P层里进行M层和V层的交互 V ...
最新文章
- 实现容器的底层技术--云平台技术栈06
- django 不用自带的mysql_python笔记二 django自带后台管理系统、模版渲染以及使用mysql数据库...
- springmvc数据验证
- 【Android OpenGL ES 开发 (三)】Shader 扩展
- 机器学习速成课程 | 练习 | Google Development——编程练习:神经网络简介
- 用python计算准确率_Python 学习 scikit-learn 预测准确率计算
- oracle blob查重,如何解决oracle blob字段 的乱码问题
- 向iGoogle中添加Google日历及其他小工具
- Java树数据结构? [关闭]
- 50 Most Frequently Used UNIX / Linux Commands (With Examples)
- 曾经排名第一的安全软件,为啥会变成流氓软件?
- 【java】根据当前时区获取时间
- 武汉江夏区计算机学院,信工班级风采展⑦ 计算机类1902班
- 使用hibernate映射oracle两个表空间的表,Hibernate每个具体类一张表映射(使用XML)
- 搞定这套 Python 爬虫面试题,面试会 so easy
- 电机调速程序c语言,步进电机调速控制系统设计C语言程序及说明.doc
- 创维电视android,当贝市场创维酷开专用版
- 在电脑测试c语言编程,C语言电脑编程兴趣班测试题目
- springboot+mysql+基于Spring boot开发电子宿舍管理系统 毕业设计-附源码132056
- 江西理工大学理学院计算机,2016年江西理工大学理学院计算机科学与技术(加试)之C程序设计复试笔试最后押题五套卷...