tornado RequestHandler.request获取请求地址等其他信息

日期:2018-07-04 19:26:11 类别:  tornado

tornado RequestHandler.request获取请求地址等其他信息

RequestHandler.request 对象存储了关于请求的相关信息,具体属性有:

  • method HTTP的请求方式,如GET或POST;

  • host 被请求的主机名;

  • uri 请求的完整资源标示,包括路径和查询字符串;

  • path 请求的路径部分;

  • query 请求的查询字符串部分;

  • version 使用的HTTP版本;

  • headers 请求的协议头,是类字典型的对象,支持关键字索引的方式获取特定协议头信息,例如:request.headers["Content-Type"]

  • body 请求体数据;

  • remote_ip 客户端的IP地址;

我们来测试几个属性

import tornado.web

import tornado.ioloop

import tornado.httpserver

import tornado.options

from tornado.web import RequestHandler

from tornado.options import options

tornado.options.define("port",default=8000,type=int,help="tornado httpserver port")

class RequestOther(tornado.web.RequestHandler):

    def post(self):

        methodName = self.request.method

        hostPort = self.request.host

        uriPath=self.request.uri

        pathName=self.request.path

        httpVersion=self.request.version

        res = "<div>methodName:%s</div><br>"% methodName

        res +="<div>hostPort:%s</div><br>"% hostPort

        res += "<div>uriPath:%s</div><br>" % uriPath

        res += "<div>pathName:%s</div><br>" % pathName

        res += "<div>httpVersion:%s</div><br>" % httpVersion

        self.write(res)

if __name__=="__main__":

    tornado.options.parse_command_line()

    app=tornado.web.Application([(r"/",RequestOther),]

                                ,debug=True)

    http_server=tornado.httpserver.HTTPServer(app)

    http_server.listen(options.port)

    tornado.ioloop.IOLoop.current().start()


打开postman发送post请求测试一下

requestOther.png

可以看到http版本信息,port端口号等