CardApiServer.java 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. import com.sun.net.httpserver.HttpServer;
  2. import com.sun.net.httpserver.HttpHandler;
  3. import com.sun.net.httpserver.HttpExchange;
  4. import java.io.IOException;
  5. import java.io.OutputStream;
  6. import java.net.InetSocketAddress;
  7. import java.nio.charset.StandardCharsets;
  8. public class CardApiServer {
  9. public static void main(String[] args) throws IOException {
  10. HttpServer server = HttpServer.create(new InetSocketAddress(8666), 0);
  11. server.createContext("/api/card", new HttpHandler() {
  12. @Override
  13. public void handle(HttpExchange exchange) throws IOException {
  14. if ("GET".equals(exchange.getRequestMethod())) {
  15. try {
  16. BankCardBean cardBean = VirCardNoUtils.getBankCardBean();
  17. String json = String.format(
  18. "{\"cardNo\":\"%s\",\"bankId\":\"%s\",\"cvv\":\"%s\",\"bankName\":\"%s\",\"validityPeriod\":\"%s\",\"holderName\":\"%s\",\"gender\":\"%s\",\"holderIdCardNo\":\"%s\"}",
  19. cardBean.getCardNo(),
  20. cardBean.getBankId(),
  21. cardBean.getCvv(),
  22. cardBean.getBankName(),
  23. cardBean.getValidityPeriod(),
  24. cardBean.getHolderName(),
  25. cardBean.getGender(),
  26. cardBean.getHolderIdCardNo()
  27. );
  28. exchange.getResponseHeaders().set("Content-Type", "application/json; charset=UTF-8");
  29. exchange.getResponseHeaders().set("Access-Control-Allow-Origin", "*");
  30. exchange.sendResponseHeaders(200, json.getBytes(StandardCharsets.UTF_8).length);
  31. OutputStream os = exchange.getResponseBody();
  32. os.write(json.getBytes(StandardCharsets.UTF_8));
  33. os.close();
  34. } catch (Exception e) {
  35. e.printStackTrace();
  36. String error = "{\"error\":\"" + e.getMessage() + "\"}";
  37. exchange.sendResponseHeaders(500, error.getBytes(StandardCharsets.UTF_8).length);
  38. OutputStream os = exchange.getResponseBody();
  39. os.write(error.getBytes(StandardCharsets.UTF_8));
  40. os.close();
  41. }
  42. } else {
  43. exchange.sendResponseHeaders(405, -1);
  44. }
  45. }
  46. });
  47. server.setExecutor(null);
  48. server.start();
  49. System.out.println("========================================");
  50. System.out.println("信用卡生成 API 服务器已启动!");
  51. System.out.println("API 地址: http://localhost:8666/api/card");
  52. System.out.println("========================================");
  53. }
  54. }