业务上遇到的,引入递归担心第三方接口不稳定陷入死循环,故自己想了一个解决办法,代码如下,如果帮到各位请帮我点个赞,谢谢
public JSONObject getLocus(String token,String mapType, String imei, String startTime,String endTime,Integer index){
Map<String, String> headerMap = new HashMap<String, String>();
headerMap.put("Content-Type", "application/x-www-form-urlencoded");
Map<String, String> paramMap = new HashMap<String, String>();
// 公共参数
paramMap.put("app_key", app_key);
paramMap.put("v", "1.0");
paramMap.put("timestamp", getCurrentDate());
paramMap.put("sign_method", "md5");
paramMap.put("format", "json");
paramMap.put("method", "jimi.device.track.list");
//私有参数
paramMap.put("access_token", token);
paramMap.put("imei", imei);
paramMap.put("begin_time", startTime);
paramMap.put("end_time", endTime);
paramMap.put("map_type",mapType );
JSONObject rep = sendPost(headerMap, paramMap);
if("1004".equals(rep.getString("code"))){
if(index==2){
return null;
}
index++;
getLocus(expire(),mapType,imei,startTime,endTime,index);
}
return rep;
}
关键点在于这个index,约定调用方法时传入1的参数,当到自己调用自己的时候传index++,那么第二次进来的时候index = 2,那就直接return,具体的业务场景使用方式不一样,大家可以灵活修改,本人只提供思路,如果帮到各位请帮忙点个赞谢谢