Anders and Briegel in Python
Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.

40 wiersze
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()