Skip to content

Instantly share code, notes, and snippets.

@whosaysni
Last active June 6, 2016 15:25
Show Gist options
  • Save whosaysni/5bfeec359733b4edbec0d2cc50ffd3ce to your computer and use it in GitHub Desktop.
Save whosaysni/5bfeec359733b4edbec0d2cc50ffd3ce to your computer and use it in GitHub Desktop.
bug brain httpd
# coding: utf-8
"""memoserv
使い方
起動すると、ローカルホストのポート8000で待ち受けます。
POST すると、サーバに値が保存されます。
GET すると、保存されていた値を返し、消去します。
"""
from BaseHTTPServer import HTTPServer as Hs, BaseHTTPRequestHandler as Hr
from cgi import FieldStorage
from json import dumps
class Handler(Hr):
memo = {}
def do_GET(self):
self.send_response(200)
self.end_headers()
self.wfile.write(dumps(self.memo)+'\n')
self.wfile.close()
self.memo.clear()
def do_POST(self):
form = FieldStorage(fp=self.rfile, headers=self.headers,
environ={"REQUEST_METHOD": "POST"})
self.memo.update((item.name, item.value) for item in form.list)
self.send_response(200)
self.end_headers()
self.wfile.write('Received: %s\n' % dumps(self.memo))
self.wfile.close()
httpd = Hs(('', 8000), Handler)
while True:
httpd.handle_request()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment