ProbeSimulateLiquorFull.java 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  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.nio.file.Files;
  7. import java.nio.file.Path;
  8. import java.time.Duration;
  9. public class ProbeSimulateLiquorFull {
  10. private static final String BASE = "http://127.0.0.1:8004";
  11. private static final String MSG = "\u4f60\u597d\uff0c\u60f3\u4e86\u89e3\u4e00\u4e0b\u5497\u4eec\u767d\u9152\u600e\u4e48\u5356\uff1f";
  12. public static void main(String[] args) throws Exception {
  13. HttpClient client = HttpClient.newBuilder().connectTimeout(Duration.ofSeconds(15)).build();
  14. String loginBody = "{\"tenantCode\":\"cs1\",\"username\":\"admin\",\"password\":\"Admin@123456\",\"code\":\"\",\"uuid\":\"\"}";
  15. HttpResponse<String> loginResp = client.send(HttpRequest.newBuilder()
  16. .uri(URI.create(BASE + "/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(loginResp.body());
  22. long templateId = args.length > 0 ? Long.parseLong(args[0]) : 70L;
  23. String simBody = "{\"templateId\":" + templateId + ",\"content\":" + jsonEscape(MSG) + "}";
  24. HttpResponse<String> simResp = client.send(HttpRequest.newBuilder()
  25. .uri(URI.create(BASE + "/workflow/simulate"))
  26. .timeout(Duration.ofSeconds(180))
  27. .header("Authorization", "Bearer " + token)
  28. .header("Content-Type", "application/json; charset=utf-8")
  29. .POST(HttpRequest.BodyPublishers.ofString(simBody, StandardCharsets.UTF_8))
  30. .build(), HttpResponse.BodyHandlers.ofString(StandardCharsets.UTF_8));
  31. StringBuilder sb = new StringBuilder();
  32. sb.append("input=").append(MSG).append('\n');
  33. sb.append("templateId=").append(templateId).append('\n');
  34. sb.append("HTTP ").append(simResp.statusCode()).append('\n');
  35. sb.append(simResp.body()).append('\n');
  36. Files.writeString(Path.of("simulate-liquor-full.txt"), sb.toString(), StandardCharsets.UTF_8);
  37. System.out.println("written simulate-liquor-full.txt");
  38. System.out.println(simResp.body());
  39. }
  40. private static String extractToken(String json) {
  41. int i = json.indexOf("\"token\"");
  42. if (i < 0) return null;
  43. int q1 = json.indexOf('"', json.indexOf(':', i) + 1);
  44. int q2 = json.indexOf('"', q1 + 1);
  45. return json.substring(q1 + 1, q2);
  46. }
  47. private static String jsonEscape(String s) {
  48. return "\"" + s.replace("\\", "\\\\").replace("\"", "\\\"")
  49. .replace("\n", "\\n").replace("\r", "\\r") + "\"";
  50. }
  51. }