import os import cgi import sys import pprint import simplejson from BaseHTTPServer import HTTPServer, BaseHTTPRequestHandler class customHTTPServer(BaseHTTPRequestHandler): pp = pprint.PrettyPrinter(indent=2) def do_GET(self): self.send_response(200) self.send_header('Content-type', 'text/html') self.end_headers() self.wfile.write('Get!') return def do_POST(self): global rootnode ctype,pdict = cgi.parse_header(self.headers.getheader('Content-type')) clen,pdict = cgi.parse_header(self.headers.getheader('Content-length')) print 'Content-type: ' + ctype + "\n" print 'Content-length: ' + clen + "\n" if ctype == 'multipart/form-data': print 'is multipart' query = cgi.parse_multipart(self.rfile, pdict) self.pp.pprint(query.keys()) elif ctype == 'text/plain' : print self.rfile.read(int(clen)) print 'READ: ' + s elif ctype == 'text/json' or ctype == 'application/json': s = "" s = self.rfile.read(int(clen)) print 'READ: ' + s self.pp.pprint(simplejson.loads(s)) self.send_response(200) self.end_headers() self.wfile.write('Post!') def main(): try: server = HTTPServer(('',8000),customHTTPServer) print 'server started at port 8000' server.serve_forever() except KeyboardInterrupt: server.socket.close() if __name__=='__main__': main()