初次提交
This commit is contained in:
107
backend/simple_http_server.py
Normal file
107
backend/simple_http_server.py
Normal file
@@ -0,0 +1,107 @@
|
||||
#!/usr/bin/env python3
|
||||
# 简单的HTTP服务器用于端口测试
|
||||
|
||||
from http.server import HTTPServer, BaseHTTPRequestHandler
|
||||
import json
|
||||
import socket
|
||||
import time
|
||||
|
||||
class SimpleHandler(BaseHTTPRequestHandler):
|
||||
def do_GET(self):
|
||||
print(f"收到请求: {self.path}")
|
||||
|
||||
# 设置响应头
|
||||
self.send_response(200)
|
||||
self.send_header('Content-Type', 'application/json')
|
||||
self.send_header('Access-Control-Allow-Origin', '*')
|
||||
self.end_headers()
|
||||
|
||||
# 根据路径返回不同响应
|
||||
if self.path == '/':
|
||||
response = {
|
||||
"message": "简单HTTP服务器运行正常",
|
||||
"port": 8080,
|
||||
"status": "ok"
|
||||
}
|
||||
elif self.path == '/health':
|
||||
response = {
|
||||
"status": "healthy",
|
||||
"timestamp": time.time(),
|
||||
"server": "simple-http-server"
|
||||
}
|
||||
elif self.path == '/api/v1/health':
|
||||
response = {
|
||||
"status": "healthy",
|
||||
"timestamp": time.time(),
|
||||
"version": "1.0.0",
|
||||
"server": "simple-http-server"
|
||||
}
|
||||
elif self.path == '/test':
|
||||
response = {
|
||||
"test": "ok",
|
||||
"message": "测试端点正常工作"
|
||||
}
|
||||
else:
|
||||
response = {
|
||||
"error": "Not Found",
|
||||
"message": "路径不存在",
|
||||
"path": self.path
|
||||
}
|
||||
|
||||
self.wfile.write(json.dumps(response, ensure_ascii=False).encode('utf-8'))
|
||||
|
||||
def do_OPTIONS(self):
|
||||
# 处理CORS预检请求
|
||||
self.send_response(200)
|
||||
self.send_header('Access-Control-Allow-Origin', '*')
|
||||
self.send_header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS')
|
||||
self.send_header('Access-Control-Allow-Headers', 'Content-Type')
|
||||
self.end_headers()
|
||||
|
||||
def check_port_available(port):
|
||||
"""检查端口是否可用"""
|
||||
try:
|
||||
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
|
||||
s.bind(('0.0.0.0', port))
|
||||
return True
|
||||
except OSError:
|
||||
return False
|
||||
|
||||
def main():
|
||||
port = 8080
|
||||
|
||||
print("🔍 检查端口可用性...")
|
||||
if not check_port_available(port):
|
||||
print(f"❌ 端口 {port} 被占用")
|
||||
# 尝试其他端口
|
||||
for test_port in range(8001, 8010):
|
||||
if check_port_available(test_port):
|
||||
print(f"✅ 使用端口 {test_port}")
|
||||
port = test_port
|
||||
break
|
||||
else:
|
||||
print("❌ 无法找到可用端口")
|
||||
return
|
||||
|
||||
print(f"🚀 启动简单HTTP服务器在端口 {port}")
|
||||
print("=" * 50)
|
||||
print(f"📍 本地访问: http://localhost:{port}")
|
||||
print(f"📋 测试端点:")
|
||||
print(f" 根路径: http://localhost:{port}/")
|
||||
print(f" 健康检查: http://localhost:{port}/health")
|
||||
print(f" API健康: http://localhost:{port}/api/v1/health")
|
||||
print(f" 测试端点: http://localhost:{port}/test")
|
||||
print("=" * 50)
|
||||
print("⏹️ 按 Ctrl+C 停止服务")
|
||||
|
||||
try:
|
||||
server = HTTPServer(('0.0.0.0', port), SimpleHandler)
|
||||
print(f"✅ 服务器已启动在端口 {port}")
|
||||
server.serve_forever()
|
||||
except KeyboardInterrupt:
|
||||
print("\n🛑 服务器已停止")
|
||||
except Exception as e:
|
||||
print(f"❌ 服务器错误: {e}")
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user