欢迎访问宙启技术站
智能推送

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

希望这个示例对你有帮助!