我目前正在使用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
但有没有办法可以获得完整的网址?
答案 0 :(得分:1)
您可以通过self.server.server_name
和self.server.server_port
获取服务器名称(和端口,如果服务器位于特定端口)。然后只是连接它们 - 假设你有一个端口,并且服务器名称不包含尾随'/'(目前无法检查,我自己):
full_url = ''.join([name, ':', port, '/', path])
如果您没有指定端口:
full_url = '/'.join([name, path])
在这两种情况下,path
都是self.path,name
和port
如上所述。