2016-08-30 103 views
1

我目前正在使用python中的http服务器。我已经Subclassed BaseHttpRequestHandler处理get/post请求。按照文件,BaseHttpRequestHandler有一个实例变量的路径,但我如何获得完整的请求URL如何在python中获取绝对url

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

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

但是,有没有方法可以让我得到充分的网址?

+0

您可以将路径添加到您的域名吗? –

回答

1

您可以通过self.server.server_nameself.server.server_port获取服务器名称(和端口,如果服务器位于特定端口上)。然后,只需将它们连接起来 - 假设你有一个端口,服务器名称不包括末尾的“/”(无法检查的那一刻,我自己):

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

如果没有指定端口:path

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

在两种情况下,是self.path和nameport在顶部被解释的那样。