log_server.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. from urllib.parse import urlparse, parse_qs
  2. from http.server import HTTPServer, BaseHTTPRequestHandler
  3. import threading
  4. from tools.log import logger
  5. class SimpleHTTPRequestHandler(BaseHTTPRequestHandler):
  6. def log_message(self, format, *args):
  7. # 禁用默认的控制台日志输出
  8. return
  9. def do_GET(self):
  10. parsed_url = urlparse(self.path)
  11. query_params = parse_qs(parsed_url.query)
  12. p = query_params.get('xxx', [''])[0]
  13. p_list = p.split('----')
  14. logger.info(f'[脚本][模拟器-{p_list[0]}]-{p_list[1]}-{p_list[2]}-{p_list[3]}-{p_list[4]}-{p_list[5]}',int(p_list[0]))
  15. response = b'{"message": "ok"}'
  16. self.send_response(200)
  17. self.send_header('Content-type', 'application/json')
  18. self.send_header('Content-Length', str(len(response)))
  19. self.end_headers()
  20. self.wfile.write(response)
  21. def start_http(server_class=HTTPServer, handler_class=SimpleHTTPRequestHandler, port = 8000):
  22. server_address = ('', port + 1)
  23. httpd = server_class(server_address, handler_class)
  24. httpd_thread = threading.Thread(target=httpd.serve_forever)
  25. httpd_thread.daemon = True
  26. httpd_thread.start()
  27. return httpd
  28. def stop_http(httpd):
  29. httpd.shutdown()
  30. httpd.server_close()