075-httpserver.py

来自「this code is used for edit on os of s60」· Python 代码 · 共 63 行

PY
63
字号
import BaseHTTPServer, SimpleHTTPServer, cgi, traceback, jsonclass Server(BaseHTTPServer.HTTPServer):        allow_reuse_address = Trueclass Handler(SimpleHTTPServer. SimpleHTTPRequestHandler):    def do_POST(self):        try:            size = int(self.headers["Content-length"])            msg = json.read(self.rfile.read(size))            reply = process_json(msg)        except:            self.send_response(500)            self.end_headers()            print "Function process_json failed:"            traceback.print_exc()            return        self.send_response(200)        self.end_headers()        self.wfile.write(json.write(reply))    def do_GET(self):        if '?' in self.path:            path, query_str = self.path.split("?", 1)            query = cgi.parse_qs(query_str)        else:            path = self.path            query = {}        try:            mime, reply = process_get(path, query)        except:            self.send_response(500)            self.end_headers()            print >> self.wfile, "Function process_query failed:\n"            traceback.print_exc(file=self.wfile)            return        self.send_response(200)        self.send_header("mime-type", mime)        self.end_headers()        self.wfile.write(reply)def process_json(msg):    return msgdef process_get(path, query):    return "text/plain", "Echo: path '%s' and query '%s'" %\               (path, query)def init_server():    print "Server starts"init_server()httpd = Server(('', 9000), Handler)httpd.serve_forever()

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?