import java.net.URI; import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; import java.time.Duration; public class ProbeSimulateLiquorFull { private static final String BASE = "http://127.0.0.1:8004"; private static final String MSG = "\u4f60\u597d\uff0c\u60f3\u4e86\u89e3\u4e00\u4e0b\u5497\u4eec\u767d\u9152\u600e\u4e48\u5356\uff1f"; public static void main(String[] args) throws Exception { HttpClient client = HttpClient.newBuilder().connectTimeout(Duration.ofSeconds(15)).build(); String loginBody = "{\"tenantCode\":\"cs1\",\"username\":\"admin\",\"password\":\"Admin@123456\",\"code\":\"\",\"uuid\":\"\"}"; HttpResponse loginResp = client.send(HttpRequest.newBuilder() .uri(URI.create(BASE + "/login")) .timeout(Duration.ofSeconds(30)) .header("Content-Type", "application/json; charset=utf-8") .POST(HttpRequest.BodyPublishers.ofString(loginBody, StandardCharsets.UTF_8)) .build(), HttpResponse.BodyHandlers.ofString(StandardCharsets.UTF_8)); String token = extractToken(loginResp.body()); long templateId = args.length > 0 ? Long.parseLong(args[0]) : 70L; String simBody = "{\"templateId\":" + templateId + ",\"content\":" + jsonEscape(MSG) + "}"; HttpResponse simResp = client.send(HttpRequest.newBuilder() .uri(URI.create(BASE + "/workflow/simulate")) .timeout(Duration.ofSeconds(180)) .header("Authorization", "Bearer " + token) .header("Content-Type", "application/json; charset=utf-8") .POST(HttpRequest.BodyPublishers.ofString(simBody, StandardCharsets.UTF_8)) .build(), HttpResponse.BodyHandlers.ofString(StandardCharsets.UTF_8)); StringBuilder sb = new StringBuilder(); sb.append("input=").append(MSG).append('\n'); sb.append("templateId=").append(templateId).append('\n'); sb.append("HTTP ").append(simResp.statusCode()).append('\n'); sb.append(simResp.body()).append('\n'); Files.writeString(Path.of("simulate-liquor-full.txt"), sb.toString(), StandardCharsets.UTF_8); System.out.println("written simulate-liquor-full.txt"); System.out.println(simResp.body()); } private static String extractToken(String json) { int i = json.indexOf("\"token\""); if (i < 0) return null; int q1 = json.indexOf('"', json.indexOf(':', i) + 1); int q2 = json.indexOf('"', q1 + 1); return json.substring(q1 + 1, q2); } private static String jsonEscape(String s) { return "\"" + s.replace("\\", "\\\\").replace("\"", "\\\"") .replace("\n", "\\n").replace("\r", "\\r") + "\""; } }