Anders and Briegel in Python
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

40 lines
1.2KB

  1. import urlparse
  2. from BaseHTTPServer import BaseHTTPRequestHandler
  3. from SimpleHTTPServer import SimpleHTTPRequestHandler
  4. import SocketServer
  5. import sys
  6. import json
  7. import threading
  8. import time
  9. class MyHandler(SimpleHTTPRequestHandler):
  10. def __init__(self, *args, **kwargs):
  11. SimpleHTTPRequestHandler.__init__(self, *args, **kwargs)
  12. def get_state(self):
  13. self.send_response(200)
  14. self.send_header('Content-Type', 'application/json')
  15. self.end_headers()
  16. self.wfile.write(json.dumps({"state":"here is the state"}))
  17. def do_GET(self, *args, **kwargs):
  18. parsed_path = urlparse.urlparse(self.path)
  19. print parsed_path.path
  20. if parsed_path.path == "/state":
  21. return self.get_state()
  22. else:
  23. return SimpleHTTPRequestHandler.do_GET(self, *args, **kwargs)
  24. if __name__ == '__main__':
  25. port = int(sys.argv[1]) if len(sys.argv)==2 else 8000
  26. server = SocketServer.TCPServer(("127.0.0.1", port), MyHandler)
  27. print "Go to 127.0.0.0:{}".format(port)
  28. thread = threading.Thread(None, server.serve_forever)
  29. thread.daemon = True
  30. thread.start()
  31. time.sleep(5)
  32. print "Shutting down ... "
  33. server.shutdown()
  34. #thread.join()