给定最简单的 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¶m2=value2" http://localhost:4444
我只想获得 param1 和 param2 的值。谢谢!
最佳答案
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 = {}
...
关于Python:如何从 BaseHTTPRequestHandler HTTP POST 处理程序获取键/值对?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4233218/