在开发验证码的功能时,要求验证code的同时判断这个是不是服务码(服务人员专用),这个就需要同时去请求两个接口,只要有一个功能就算成功,不再执行两个接口。
这个问题可以使用RxJava的flatmap完成一次嵌套请求,有一点需要注意的是,我们需要在第一个接口调用失败的情况下,去请求第二个接口,我们先去验证验证码,再验证服务码。
@Override
public void checkConfirmCode(String deviceId, String code, OnAPIListener<ConfirmCodeEntity> listener) {
Map<String, Object> map = new HashMap<>();
map.put("equ_code", deviceId);
map.put("confirm_code", code);
Call<ConfirmCodeEntity> call = api.checkConfirmCode(map);
call.enqueue(new Callback<ConfirmCodeEntity>() {
@Override
public void onResponse(Call<ConfirmCodeEntity> call, Response<ConfirmCodeEntity> response) {
if(response.body()==null){
return;
}
LogUtil.e("httpclient checkConfirmCode success:"+response.body());
}
@Override
public void onFailure(Call<ConfirmCodeEntity> call, Throwable t) {
LogUtil.e("httpclient checkConfirmCode fail:"+t.getMessage());
}
});
}
@Override
public void chec