异步请求获取数据
public JSONObject getResponsiblePersonList() throws Exception {
String tenantCode = getTenantCode();
String personUrl = "http://" + factory + "/FactoryModelService/rents/" + tenantCode + "/users";
// 异步请求获取数据
CompletableFuture<String> responseFuture = CompletableFuture.supplyAsync(() -> HttpClientUtil.get(personUrl));
// 解析数据
CompletableFuture<List<FRPNameAndCode>> dataFuture = responseFuture.thenApply(response -> {
cn.hutool.json.JSONObject jsonObject = new cn.hutool.json.JSONObject(response);
cn.hutool.json.JSONObject collectionInfo = jsonObject.getJSONObject("collection");
JSONArray items = collectionInfo.getJSONArray("items");
List<FRPNameAndCode> nameAndCodeList = new ArrayList<>();
for (int i = 0; i < items.size(); i++) {
cn.hutool.json.JSONObject item = items.getJSONObject(i);
JSONArray data = item.getJSONArray("data");
FRPNameAndCode nameAndCode = new FRPNameAndCode();
for (int j = 0; j < data.size(); j++) {
cn.hutool.json.JSONObject dataItem = data.getJSONObject(j);
String name = dataItem.getStr("name");
String value = dataItem.getStr("value");
if (name.equals("userCode")) {
nameAndCode.setResponsiblePersonCode(value);
} else if (name.equals("userName")) {
nameAndCode.setResponsiblePerson(value);
}
}
nameAndCodeList.add(nameAndCode);
}
return nameAndCodeList;
});
// 等待异步请求和数据处理完成
List<FRPNameAndCode> nameAndCodeList = dataFuture.get();
return JSONObject.fromObject(RestfulTool.buildCollection(nameAndCodeList,
setPage(nameAndCodeList.size()),request.getRequestURI(),FRPNameAndCode.class));
}
异步请求获取数据
于 2024-10-22 15:17:14 首次发布