说明:python2.7 编码经常会有问题,所以前后端交互的时候最好在接收端直接返回unicode格式,以方便下一层处理
import tornado.httpserver
import tornado.ioloop
import tornado.options
import tornado.web
from tornado.options import define, options
define("port", default=8000, help="run on the given port", type=int)
class IndexHandler(tornado.web.RequestHandler):
def get(self):
greeting = self.get_argument('greeting', 'Hello')
self.write(greeting + ', friendly user!')
def post(self, *args, **kwargs):
print self.getRequestString()
def getRequestString(self):
encoding = "utf-8"
content_type = self.request.headers.get("Content-Type", None)
print "content_type:%s"%content_type
if not content_type is None:
segs = [seg.strip()[8:] for seg in content_type.split(';') if seg.strip().startswith("charset=")]
if len(segs) > 0:
encoding = segs[0]
try:
print "type:{}".format(type(self.request.body.decode(encoding)))
return self.request.body.decode(encoding)
except LookupError, x:
print x
return None
if __name__ == "__main__":
tornado.options.parse_command_line()
app = tornado.web.Application(handlers=[(r"/test", IndexHandler)])
http_server = tornado.httpserver.HTTPServer(app)
http_server.listen(options.port)
tornado.ioloop.IOLoop.instance().start()