2016-08-30 30 views
1

私は現在、httpサーバをpythonで作業しています。私はBaseHttpRequestHandlerをサブクラス化してget/postリクエストを処理しています。ドキュメントごとに、BaseHTTPRequestHandlerでは、インスタンス変数のパスを持っていますが、どのように私は完全な要求URLPythonで絶対URLを取得する方法

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

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

を得るのです。しかし、私は完全なURLを取得することができます方法はありますか?

+0

ドメイン名にパスを追加できますか? –

答えて

1

self.server.server_nameself.server.server_portでサーバー名(およびサーバーが特定のポートにある場合はポート)を取得できます。あなたが持っていない場合は

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

:あなたはポートを持っていると仮定して、サーバー名は、末尾の「/」(、現時点では自分自身を確認することができない)が含まれていないこと - そして、ちょうどそれらを連結指定されたポート:両方の場合において

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

pathはself.pathであり、そしてnameportは、AS上部に説明されています。

関連する問題