星空对接接口开发:序列化对象修改

This commit is contained in:
16358 2025-07-04 15:41:44 +08:00
parent c387616fe5
commit e1ce92d937
1 changed files with 38 additions and 36 deletions

View File

@ -78,7 +78,7 @@ public class ApiPostBack {
throw new RuntimeException("JSON序列化失败" + e.getMessage());
}
String resultJSON = sendPostRequest(url, jsonInputString);
String resultJSON = sendPostRequest(url, jsonInputString,"save");
JSONObject jsonObject = JSONObject.parseObject(resultJSON);
// 获取 Result.NeedReturnData 数组,更新fid ,fentryid的值
JSONArray needReturnDataArray = jsonObject.getJSONObject("Result").getJSONArray("NeedReturnData");
@ -131,7 +131,7 @@ public class ApiPostBack {
throw new RuntimeException("JSON序列化失败" + e.getMessage());
}
String resultJSON = sendPostRequest(url, jsonInputString);
String resultJSON = sendPostRequest(url, jsonInputString,"save");
JSONObject jsonObject = JSONObject.parseObject(resultJSON);
// 获取 Result.NeedReturnData 数组,更新fid ,fentryid的值
JSONArray needReturnDataArray = jsonObject.getJSONObject("Result").getJSONArray("NeedReturnData");
@ -193,10 +193,10 @@ public class ApiPostBack {
throw new RuntimeException("JSON序列化失败" + e.getMessage());
}
sendPostRequest(url, jsonInputString);
sendPostRequest(url, jsonInputString,"save");
}
private String sendPostRequest(String url, String jsonBody) throws IOException {
private String sendPostRequest(String url, String jsonBody,String sendType) throws IOException {
StringBuilder errorLog = new StringBuilder();
try {
URL apiUrl = new URL(url);
@ -221,36 +221,38 @@ public class ApiPostBack {
if (responseCode == HttpURLConnection.HTTP_OK) {
try (BufferedReader br = new BufferedReader(
new InputStreamReader(connection.getInputStream(), StandardCharsets.UTF_8))) {
StringBuilder response = new StringBuilder();
String responseLine;
while ((responseLine = br.readLine()) != null) {
response.append(responseLine.trim());
}
// 解析响应 JSON
JSONObject jsonResponse = JSONObject.parseObject(response.toString());
// 获取 Result 节点
JSONObject resultObj = jsonResponse.getJSONObject("Result");
if (resultObj == null) {
throw new RuntimeException("响应中未找到 'Result' 字段,请检查接口返回格式!");
}
// 获取 ResponseStatus 节点
JSONObject responseStatus = resultObj.getJSONObject("ResponseStatus");
if (responseStatus == null) {
throw new RuntimeException("响应中未找到 'ResponseStatus' 字段,请检查接口返回格式!");
}
// 判断 IsSuccess
Boolean isSuccess = responseStatus.getBoolean("IsSuccess");
if (isSuccess != null && !isSuccess) {
// 提取错误信息并抛出异常
JSONArray errors = responseStatus.getJSONArray("Errors");
if (errors != null && !errors.isEmpty()) {
String errorMessage = errors.getJSONObject(0).getString("Message");
throw new RuntimeException("接口返回错误: " + errorMessage);
} else {
throw new RuntimeException("接口返回错误,但未找到具体的错误信息。");
StringBuilder response = new StringBuilder();
String responseLine;
while ((responseLine = br.readLine()) != null) {
response.append(responseLine.trim());
}
}
return response.toString();
if (sendType.equals("save")) {
// 解析响应 JSON
JSONObject jsonResponse = JSONObject.parseObject(response.toString());
// 获取 Result 节点
JSONObject resultObj = jsonResponse.getJSONObject("Result");
if (resultObj == null) {
throw new RuntimeException("响应中未找到 'Result' 字段,请检查接口返回格式!");
}
// 获取 ResponseStatus 节点
JSONObject responseStatus = resultObj.getJSONObject("ResponseStatus");
if (responseStatus == null) {
throw new RuntimeException("响应中未找到 'ResponseStatus' 字段,请检查接口返回格式!");
}
// 判断 IsSuccess
Boolean isSuccess = responseStatus.getBoolean("IsSuccess");
if (isSuccess != null && !isSuccess) {
// 提取错误信息并抛出异常
JSONArray errors = responseStatus.getJSONArray("Errors");
if (errors != null && !errors.isEmpty()) {
String errorMessage = errors.getJSONObject(0).getString("Message");
throw new RuntimeException("接口返回错误: " + errorMessage);
} else {
throw new RuntimeException("接口返回错误,但未找到具体的错误信息。");
}
}
}
return response.toString();
}
} else {
throw new RuntimeException("请求失败,响应码:" + responseCode);
@ -304,7 +306,7 @@ public class ApiPostBack {
if (jsonInputString.isEmpty()) return result;
String oaData = sendPostRequest(url, jsonInputString);
String oaData = sendPostRequest(url, jsonInputString,"ExecuteBillQuery");
//查询的参数为FJoinOutQty/FInStockJoinQty这两者如果有存在大于0的情况或者存在什么也没查到的情况就返回true
JSONArray dataList = JSONArray.parseArray(oaData);
@ -338,7 +340,7 @@ public class ApiPostBack {
" \"IsVerifyProcInst\": \"true\"\n" +
"}\n" +
"}";
String oaData = sendPostRequest(url, jsonInputString);
String oaData = sendPostRequest(url, jsonInputString,"save");
}
/**
@ -356,7 +358,7 @@ public class ApiPostBack {
"\t\t\"NetworkCtrl\": \"false\"\n" +
"\t}\n" +
"}";
sendPostRequest(url, jsonInputString);
sendPostRequest(url, jsonInputString,"save");
}
}