2016-08-30 89 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在頂部被解釋的那樣。