1.使用
public void getProblemGrab() {
HttpHeaders headers = new HttpHeaders();
AsyncRestTemplate template = new AsyncRestTemplate();
headers.setContentType(MediaType.APPLICATION_JSON);
JSONObject param = new JSONObject();
// 获取定时任务参数
String xxjobParam = XxlJobHelper.getJobParam();
if (null == xxjobParam || xxjobParam.isEmpty()) {
throw new BusiException("任务参数为空");
}
String[] params = xxjobParam.split(",");
String startTime = params[0];
String endTime = params[1];
String status = params[2];
//使用SimpDateFormat对象
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
Date startDate = null;
Date endDate = null;
try {
startDate = sdf.parse(startTime);
endDate = sdf.parse(endTime);
} catch (ParseException e) {
e.printStackTrace();
}
param.put("startTime", startDate);
param.put("endTime", endDate);
param.put("grabState", status);
HttpEntity requestEntity = new HttpEntity(JSONUtil.toJsonStr(param), headers);
//此处的apiUrl即为第三方的接口请求地址,http://玛卡巴卡
ListenableFuture> responseEntity = template.postForEntity(apiUrl, requestEntity, String.class);
//异步回调处理
responseEntity.addCallback(new ListenableFutureCallback>() {
@Override
public void onFailure(Throwable throwable) {
Log.error(throwable.getMessage());
}
@Override
public void onSuccess(ResponseEntity apiResponseEntity) {
IssuesResponseData response = new IssuesResponseData();
String boy = apiResponseEntity.getBody();
JSONObject jsonObject = (JSONObject) JSONObject.parse(boy);
//response中包含了所有返回的信息
response = jsonObject.toJavaObject(IssuesResponseData.class);
List acbQualityIssuesList = new ArrayList<>();
if (CollUtil.isNotEmpty(response.getResult())) {
//具体处理方法根据接口返回结构自行处理数据
......
}
}
});
}
2.返回体实体类(根据接口返回形式自行修改字段)
@Data
public class IssuesResponseData {
private String code;
private String message;
private List result;
private Long timestamp;
private Boolean success;
}