如何在python中获取绝对URL

时间:2016-08-30 15:42:55

标签: python python-2.7 http http-headers

我目前正在使用python中的http服务器。我已经将BaseHttpRequestHandler子类化为处理get / post请求。根据文档,BaseHttpRequestHandler有一个实例变量路径,但我如何获得完整的请求url

示例http://www.cnn.com/index.html

Class handler(BaseHTTPRequestHandler):
    def do_GET(self):
        # This gives me /index.html
        print self.path 

但有没有办法可以获得完整的网址?

1 个答案:

答案 0 :(得分:1)

您可以通过self.server.server_nameself.server.server_port获取服务器名称(和端口,如果服务器位于特定端口)。然后只是连接它们 - 假设你有一个端口,并且服务器名称不包含尾随'/'(目前无法检查,我自己):

full_url = ''.join([name, ':', port, '/', path])

如果您没有指定端口:

full_url = '/'.join([name, path])

在这两种情况下,path都是self.path,nameport如上所述。