由于原始代码已经提供了一个很好的示例,下面是一个简化的代码实例,展示了如何使用Python来处理HTTP请求和响应。
import http.server
import json
class SimpleHTTPRequestHandlerWithLog(http.server.SimpleHTTPRequestHandler):
"""
自定义的HTTP请求处理类,用于记录请求日志。
"""
def log_message(self, format, *args):
"""
重写日志记录方法,可以根据需要将日志输出到其他地方。
"""
# 这里只是简单地将日志打印到控制台,实际应用中可以修改为写入文件或发送到日志服务
print(self.address_string() + ": " + format % args)
def do_POST(self): # 只处理POST请求
"""
处理POST请求,解析请求体并返回响应。
"""
# 读取请求体
content_length = int(self.headers['Content-Length'])
request_body = self.rfile.read(content_length)
# 解析请求体为JSON
request_json = json.loads(request_body)
# 打印请求体,实现调试日志
print("Request:", request_json)
# 构造响应JSON
response_json = {
"is_success": True,
"error_code": 0,
"request_id": request_json.get("request_id")
}
# 返回响应
self.send_response(200)
self.send_header('Content-type', 'application/json')
self.end_headers()
self.wfile.write(json.dumps(response_json).encode('utf-8'))
def main():
# 设置服务器地址和端口
server_address = ('', 8000)
httpd = http.server.HTTPServer(server_address, SimpleHTTPRequestHandlerWithLog)
httpd.serve_forever()
if __name__ == '__main__':
main()
这段代码创建了一个简单的HTTP服务器,监听8000端口,并处理POST请求。它记录请求日志到控制台,解析请求体,构造响应,并返回200响应码和JSON格式的响应体。这个例子提供了一个简单的服务器框架,可以用于学习和测试HTTP服务端的开发。