Python: BaseHTTPRequestHandler HTTP POST ハンドラーからキー/値のペアを取得するにはどうすればいいですか? 質問する

Python: BaseHTTPRequestHandler HTTP POST ハンドラーからキー/値のペアを取得するにはどうすればいいですか? 質問する

最も単純な HTTP サーバーの場合、BaseHTTPRequestHandler で post 変数を取得するにはどうすればよいでしょうか?

from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer

class Handler(BaseHTTPRequestHandler):
    def do_POST(self):
        # post variables?!

server = HTTPServer(('', 4444), Handler)
server.serve_forever()

# test with:
# curl -d "param1=value1&param2=value2" http://localhost:4444

param1 と param2 の値を取得できるようにしたいだけです。ありがとうございます!

ベストアンサー1

def do_POST(self):
    ctype, pdict = cgi.parse_header(self.headers.getheader('content-type'))
    if ctype == 'multipart/form-data':
        postvars = cgi.parse_multipart(self.rfile, pdict)
    elif ctype == 'application/x-www-form-urlencoded':
        length = int(self.headers.getheader('content-length'))
        postvars = cgi.parse_qs(self.rfile.read(length), keep_blank_values=1)
    else:
        postvars = {}
    ...

おすすめ記事