ProbeSimulateMedical.java 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. import java.net.URI;
  2. import java.net.http.HttpClient;
  3. import java.net.http.HttpRequest;
  4. import java.net.http.HttpResponse;
  5. import java.nio.charset.StandardCharsets;
  6. import java.time.Duration;
  7. /** Login cs1/admin and simulate medical efficacy question via template 70. */
  8. public class ProbeSimulateMedical {
  9. private static final String MSG =
  10. "\u4f60\u597d\uff0c\u82b9\u83dc\u80fd\u6cbb\u7597\u7cd6\u5c3f\u75c5\u5417\uff1f"
  11. + "\u5bf9\u7cd6\u5c3f\u75c5\u6709\u597d\u5904\u5417\uff1f";
  12. public static void main(String[] args) throws Exception {
  13. HttpClient hc = HttpClient.newBuilder().connectTimeout(Duration.ofSeconds(15)).build();
  14. String loginBody = "{\"tenantCode\":\"cs1\",\"username\":\"admin\",\"password\":\"Admin@123456\",\"code\":\"\",\"uuid\":\"\"}";
  15. HttpResponse<String> login = hc.send(HttpRequest.newBuilder()
  16. .uri(URI.create("http://127.0.0.1:8004/login"))
  17. .timeout(Duration.ofSeconds(30))
  18. .header("Content-Type", "application/json; charset=utf-8")
  19. .POST(HttpRequest.BodyPublishers.ofString(loginBody, StandardCharsets.UTF_8))
  20. .build(), HttpResponse.BodyHandlers.ofString(StandardCharsets.UTF_8));
  21. String token = extractToken(login.body());
  22. System.out.println("Login status=" + login.statusCode() + " token=" + (token != null ? "OK" : "FAIL"));
  23. if (token == null) {
  24. System.out.println(login.body());
  25. return;
  26. }
  27. String simBody = "{\"templateId\":70,\"content\":\"" + MSG.replace("\\", "\\\\").replace("\"", "\\\"") + "\"}";
  28. HttpResponse<String> sim = hc.send(HttpRequest.newBuilder()
  29. .uri(URI.create("http://127.0.0.1:8004/workflow/simulate"))
  30. .timeout(Duration.ofSeconds(180))
  31. .header("Authorization", "Bearer " + token)
  32. .header("Content-Type", "application/json; charset=utf-8")
  33. .POST(HttpRequest.BodyPublishers.ofString(simBody, StandardCharsets.UTF_8))
  34. .build(), HttpResponse.BodyHandlers.ofString(StandardCharsets.UTF_8));
  35. System.out.println("Simulate HTTP " + sim.statusCode());
  36. System.out.println(sim.body());
  37. String body = sim.body();
  38. boolean udd = body.contains("\"uddUsed\":true");
  39. boolean probe = body.contains("\"shouldProbe\":true");
  40. boolean handoff = body.contains("human_transfer") || body.contains("\u4e13\u5c5e\u987e\u95ee");
  41. System.out.println("\n--- checks ---");
  42. System.out.println("uddUsed=true: " + udd);
  43. System.out.println("shouldProbe=true: " + probe);
  44. System.out.println("handoff reply: " + handoff + (handoff ? " FAIL" : " OK"));
  45. }
  46. private static String extractToken(String json) {
  47. int i = json.indexOf("\"token\"");
  48. if (i < 0) {
  49. return null;
  50. }
  51. int q1 = json.indexOf('"', json.indexOf(':', i) + 1);
  52. int q2 = json.indexOf('"', q1 + 1);
  53. return json.substring(q1 + 1, q2);
  54. }
  55. }