http server python 打印post
时间: 2023-09-22 16:02:17 浏览: 49
在Python中,我们可以使用`http.server`模块来创建一个简单的HTTP服务器来处理POST请求,并打印出POST数据。
首先,需要导入`http.server`模块和`urllib.parse`模块,用于解析URL参数。然后,创建一个自定义的类,继承自`http.server.BaseHTTPRequestHandler`。在这个类中,重写`do_POST`方法来处理POST请求。
以下是一个示例代码:
```python
from http.server import BaseHTTPRequestHandler, HTTPServer
from urllib.parse import parse_qs
class RequestHandler(BaseHTTPRequestHandler):
def do_POST(self):
content_length = int(self.headers['Content-Length']) # 获取POST数据的长度
post_data = self.rfile.read(content_length).decode('utf-8') # 读取POST数据
post_params = parse_qs(post_data) # 解析POST数据
# 打印POST数据
print("POST 请求路径:", self.path)
print("POST 数据:")
for key, values in post_params.items():
for value in values:
print(f"{key}={value}")
self.send_response(200) # 返回响应码200
self.end_headers() # 结束响应头
# 返回响应内容
response = "POST 请求已处理"
self.wfile.write(response.encode('utf-8'))
def run(server_class=HTTPServer, handler_class=RequestHandler, port=8000):
server_address = ('', port)
httpd = server_class(server_address, handler_class)
print(f"启动服务器,端口号:{port}")
httpd.serve_forever()
# 启动HTTP服务器
if __name__ == '__main__':
run()
```
运行上述代码后,会启动一个HTTP服务器,并监听在本地的8000端口。当有POST请求发送到服务器时,服务器会解析POST数据并打印出来,然后返回一个简单的响应。
你可以使用类似Postman或curl的工具向`http://localhost:8000`发送POST请求,然后在服务器的控制台中查看打印的POST数据。