2016-07-19 16 views
0

私はPythonを使ってHTTPサーバーを作成しましたが、HTTP本体を取得する方法はわかりません。 HTTPの本文を取得するにはどうすればよいですか?ここPython HTTPServer - HTTP本体を取得する

は私のコードです:その、ここで説明したようにGETリクエストでリクエストボディを持つ

from http.server import HTTPServer,BaseHTTPRequestHandler 

class MyHTTPHandler(BaseHTTPRequestHandler): 
    def do_GET(self): 
     print("connect from ",self.client_address) 
     print(self.headers) 
     length = self.headers['Content-Length'] 
     print(length) 

addr = ('',21567) 
server = HTTPServer(addr,MyHTTPHandler) 
server.serve_forever() 
+0

Hmm。あなたはフラスコを試してみたいかもしれません... –

+0

いずれにせよ。レスポンスオブジェクトにHTMLを書く必要があるようです。 –

+0

[BaseHTTPRequestHandlerでレスポンスボディを書く]の可能な複製(http://stackoverflow.com/questions/7646657/writing-response-body-with-basehttprequesthandler) –

答えて

1

は、良い習慣ではありません:HTTP GET with request body

代わりに、あなたはPOSTにあなたの方法を変更することができますとそこBaseHTTPRequestHandlerドキュメントチェック:https://docs.python.org/2/library/basehttpserver.html

を特にこの部分:

rfile

オプションの入力データの先頭に配置された入力ストリームが含まれます。

+0

self.rfile.read(int(self.headers ['Content-Length'])))何も返しませんでした。 –

+0

あなたはプログラム(カール、ウェブブラウザなど)をテストするために何を使いますか? – LiGhTx117

+1

私はそれを解決しました、私はPOSTにメソッドを変更し、それは最終的に働いた! –

関連する問題