Skip to content

Instantly share code, notes, and snippets.

@flankerhqd
Last active December 17, 2015 17:39
Show Gist options
  • Save flankerhqd/5647958 to your computer and use it in GitHub Desktop.
Save flankerhqd/5647958 to your computer and use it in GitHub Desktop.
secu-bank
# -*- coding: utf-8 -*-
from SimpleHTTPServer import SimpleHTTPRequestHandler
from BaseHTTPServer import BaseHTTPRequestHandler
from BaseHTTPServer import HTTPServer
from urlparse import urlparse, parse_qs
import SocketServer
from websocket import create_connection
import json
class MyHTTPRequestHandler(BaseHTTPRequestHandler):
def do_GET(self):
enc = 'utf-8'
self.send_response(200)
self.send_header("Content-type", "text/html;charset%s" % enc)
self.end_headers()
url = self.path
d = parse_qs(urlparse(url).query)
print d
cmd = "list_init"
if "cmd" in d:
cmd = d["cmd"][0]
o = None
if "o" in d:
o = d["o"][0]
b = None
if "b" in d:
b = d["b"][0]
print o, b
if o is not None and b is not None:
result = json.loads(self.ws_fetch(cmd, o, b))
self.wfile.write("<table>\n")
self.wfile.write("<tr>\n")
self.wfile.write("<th>user</th>\n")
self.wfile.write("<th>balance</th>\n")
self.wfile.write("</tr>")
users = json.loads(result["m"])
for user in users:
self.wfile.write("<tr>\n")
self.wfile.write(("<th>%s</th>\n" % user["user"]).encode("utf-8"))
self.wfile.write(("<th>%s</th>\n" % user["balance"]).encode("utf-8"))
self.wfile.write("</tr>")
self.wfile.write("</table>")
def ws_fetch(self, cmd, o, b):
s = json.dumps({"cmd": cmd, "o": o,"b":b})
print s
fetched = False
while not fetched:
try:
ws = create_connection("ws://1.234.27.139:40022/banking")
ws.send(s)
ret = ws.recv()
fetched = True
return ret
except Exception as e:
print "err"
print e
return None
def do_POST(self):
pass
def do_HEAD(self):
pass
if __name__ == '__main__':
port = 8080
handler = SimpleHTTPRequestHandler
# httpd = SocketServer.TCPServer(("", port ), handler )
httpd = HTTPServer(('', port), MyHTTPRequestHandler)
print "Server is running at port", port
httpd.serve_forever()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment