Novate 封装Rxjava2.0 的使用
来源:互联网 发布:淘宝账号名字怎么修改 编辑:程序博客网 时间:2024/04/30 10:31
/** * 发送短信验证码 */ @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() { @Override public void successCallBack(Object obj) { Log.e("成功222",obj.toString()); } @Override public 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/onsite novate.get("api/v1/lib/third/sms/send", parameter, new MyBaseSubscriber<ResponseBody>(LoginActivity.this.mContext) { @Override public void onError(Throwable e) { Log.e("错误码",e.getCode() + ""); Log.e("信息",e.getMessage()); Toast.makeText(LoginActivity.this, e.getMessage(), Toast.LENGTH_SHORT).show(); } @Override public 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个角色: Observable Subject Observer Subscriber Observable和Subject是两个“生产”实体,Observer和Subscriber是两个“消费”实体。说直白点Observable对应于观察者模式中的被观察者,而Observer和Subscriber对应于观察者模式中的观察者。Subscriber其实是一个实现了Observer的抽象类,后面我们分析源码的时候也会介绍到。Subject比较复杂,以后再分析。 上一篇文章中我们说到RxJava中有个关键概念:事件。观察者Observer和被观察者Observable通过subscribe()方法实现订阅关系。从而Observable 可以在需要的时候发出事件来通知Observer。 */ /* private void rxJavaClick(){ Observable.create(new Observable.OnSubscribe<Integer>(){ @Override public void call(Subscriber<? super Integer> subscriber) { for (int i = 0; i < 5; i++) { subscriber.onNext(i); } subscriber.onCompleted(); } }).subscribe(new Observer<Integer>() { @Override public void onCompleted() { Log.e("完成","执行的回调"); } @Override public void onError(java.lang.Throwable e) { Log.e("错误","错误信息"); }// @Override// public void onError(Throwable e) {// Log.e("错误","错误信息");// } @Override public void onNext(Integer integer) { Log.e("执行者","执行次数" + integer); } }); }*/
阅读全文
0 0
- Novate 封装Rxjava2.0 的使用
- Rxjava2.0和Retrofit简单封装使用
- RxJava2.0的使用
- RxJava2.0的使用-1
- RxJava2.0的使用-2
- RxJava2.0的使用-3
- RxJava2.0的使用详解
- RxJava2.0的使用代码
- RxJava2.0的使用详解
- RxJava2.0的使用详解
- Mvp+Retrofit2+RxJava2 项目中使用的简洁封装
- Mvp+Retrofit2+RxJava2 项目中使用的简洁封装
- Retrofit2+Rxjava2联网的封装
- Retroit+rxjava2.0+mvp封装
- RxBus在rxjava2.0 的使用
- Android RxJava2.0的简单使用
- RxBus的使用(基于RxJava2.0)
- RxJava2和Retrofit2.0的简单使用
- 微信公众号与小程序数据互通
- 按Enter或Esc,MFC程序退出的解决方法
- 2017年第0届浙江工业大学之江学院程序设计竞赛决赛
- java源码分析之ArrayList
- 视觉跟踪综述
- Novate 封装Rxjava2.0 的使用
- Android在AndroidStudio中引用Module依赖注意事项
- MD5 校验和(checksum)
- MySql 里的IFNULL用法
- (一)基于SSH实现员工管理系统之框架整合篇
- Activity的启动模式和Intent标记位
- 语义分割--Dilated Residual Networks
- iOS开发系列--Objective-C之类和对象
- 学习CI框架数据库相关知识点总结