您的位置:首页 > 财经 > 产业 > 时尚手表网站_三角形景观绿化设计图_地推拉新app推广平台_网络营销的50种方法

时尚手表网站_三角形景观绿化设计图_地推拉新app推广平台_网络营销的50种方法

2025/2/27 5:53:53 来源:https://blog.csdn.net/m0_47587308/article/details/145875422  浏览:    关键词:时尚手表网站_三角形景观绿化设计图_地推拉新app推广平台_网络营销的50种方法
时尚手表网站_三角形景观绿化设计图_地推拉新app推广平台_网络营销的50种方法

在Python中,可以使用http.server模块和json模块来创建一个简单的HTTP服务器,该服务器可以响应80端口上的/query POST请求,并且请求体为JSON格式。
需要注意,在Linux系统上,使用低于1024的端口(如80端口)需要root权限。

示例代码:

import http.server
import socketserver
import json# 自定义请求处理类
class MyHandler(http.server.SimpleHTTPRequestHandler):def do_POST(self):if self.path == '/query':# 获取请求体的长度content_length = int(self.headers['Content-Length'])# 读取请求体post_data = self.rfile.read(content_length)try:# 解析JSON数据json_data = json.loads(post_data.decode('utf-8'))# 打印接收到的JSON数据print("Received JSON data:", json_data)# 发送响应头self.send_response(200)self.send_header('Content-type', 'application/json')self.end_headers()# 构造响应数据response_data = {'message': 'JSON data received successfully'}# 将响应数据转换为JSON字符串并发送self.wfile.write(json.dumps(response_data).encode('utf-8'))except json.JSONDecodeError:# 若JSON解析失败,发送400错误响应self.send_error(400, 'Bad Request: Invalid JSON data')else:# 若请求路径不是/query,发送404错误响应self.send_error(404, 'Not Found')# 服务器的端口号
PORT = 80with socketserver.TCPServer(("", PORT), MyHandler) as httpd:print(f"Serving at port {PORT}")try:# 启动服务器httpd.serve_forever()except KeyboardInterrupt:print("Server stopped by user.")

代码说明:

  1. 自定义请求处理类MyHandler:继承自http.server.SimpleHTTPRequestHandler,并重写do_POST方法来处理POST请求。
  2. 处理/query请求
    • 获取请求体的长度,并读取请求体。
    • 尝试解析JSON数据,如果解析成功,打印接收到的JSON数据,并返回一个包含成功消息的JSON响应。
    • 如果JSON解析失败,返回400错误响应。
  3. 处理其他请求:如果请求路径不是/query,返回404错误响应。
  4. 启动服务器:使用socketserver.TCPServer创建一个TCP服务器,并在指定的端口上启动。

运行代码:

在Linux系统上,需要以root权限运行该脚本(修改端口至1024以上就不需要root):

sudo python3 server.py

测试服务器:

使用curl命令来测试服务器:

curl -X POST -H "Content-Type: application/json" -d '{"key": "value"}' http://localhost/query

这样,服务器将接收并解析JSON数据,并返回一个成功消息。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com