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.time.Duration; /** Login cs1/admin and simulate medical efficacy question via template 70. */ public class ProbeSimulateMedical { private static final String MSG = "\u4f60\u597d\uff0c\u82b9\u83dc\u80fd\u6cbb\u7597\u7cd6\u5c3f\u75c5\u5417\uff1f" + "\u5bf9\u7cd6\u5c3f\u75c5\u6709\u597d\u5904\u5417\uff1f"; public static void main(String[] args) throws Exception { HttpClient hc = HttpClient.newBuilder().connectTimeout(Duration.ofSeconds(15)).build(); String loginBody = "{\"tenantCode\":\"cs1\",\"username\":\"admin\",\"password\":\"Admin@123456\",\"code\":\"\",\"uuid\":\"\"}"; HttpResponse login = hc.send(HttpRequest.newBuilder() .uri(URI.create("http://127.0.0.1:8004/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(login.body()); System.out.println("Login status=" + login.statusCode() + " token=" + (token != null ? "OK" : "FAIL")); if (token == null) { System.out.println(login.body()); return; } String simBody = "{\"templateId\":70,\"content\":\"" + MSG.replace("\\", "\\\\").replace("\"", "\\\"") + "\"}"; HttpResponse sim = hc.send(HttpRequest.newBuilder() .uri(URI.create("http://127.0.0.1:8004/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)); System.out.println("Simulate HTTP " + sim.statusCode()); System.out.println(sim.body()); String body = sim.body(); boolean udd = body.contains("\"uddUsed\":true"); boolean probe = body.contains("\"shouldProbe\":true"); boolean handoff = body.contains("human_transfer") || body.contains("\u4e13\u5c5e\u987e\u95ee"); System.out.println("\n--- checks ---"); System.out.println("uddUsed=true: " + udd); System.out.println("shouldProbe=true: " + probe); System.out.println("handoff reply: " + handoff + (handoff ? " FAIL" : " OK")); } 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); } }