/**
* 发送短信验证码
*/
@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);
}
});
}
*/
Novate 封装Rxjava2.0 的使用
最新推荐文章于 2021-06-01 11:51:42 发布