Python中http.server.BaseHTTPRequestHandler处理POST请求的示例
发布时间:2024-01-04 18:02:01
下面是一个使用http.server.BaseHTTPRequestHandler处理POST请求的示例:
from http.server import BaseHTTPRequestHandler, HTTPServer
class MyRequestHandler(BaseHTTPRequestHandler):
def do_POST(self):
# 获取POST请求的内容长度
content_length = int(self.headers['Content-Length'])
# 读取POST请求的内容
post_data = self.rfile.read(content_length)
# 处理POST请求的逻辑
# 可以在这里添加你自己的代码来处理POST请求的数据
# 返回响应
self.send_response(200)
self.send_header('Content-type', 'text/html')
self.end_headers()
self.wfile.write(b'POST request received')
def run():
server_address = ('', 8000)
httpd = HTTPServer(server_address, MyRequestHandler)
print('Server running at http://127.0.0.1:8000/')
httpd.serve_forever()
if __name__ == '__main__':
run()
上面的代码创建了一个简单的HTTP服务器,使用MyRequestHandler类来处理请求。当收到POST请求时,do_POST方法会被调用。
在do_POST方法中,首先获取请求的内容长度,然后通过self.rfile.read(content_length)读取POST请求的内容。
你可以在do_POST方法中添加你自己的代码来处理POST请求的数据,比如解析JSON数据、存储到数据库等等。
最后,使用self.send_response(200)返回响应的状态码,并使用self.wfile.write写入响应的内容。
你可以运行这个服务器,并使用curl或者其他工具发送POST请求来测试:
curl -X POST -d "Hello, World!" http://127.0.0.1:8000/
服务器将会返回POST request received。
希望这个示例对你有帮助!
