可以使用 Python 的 http.server 和 unittest.mock 模块来创建一个简单的 HTTP 服务器,并根据请求的 URL 返回 JSON 数据。以下是一个示例:
from http.server import BaseHTTPRequestHandler, HTTPServer
import json
from unittest.mock import patch
class MockServerRequestHandler(BaseHTTPRequestHandler):
def do_GET(self):
self.send_response(200)
self.send_header('Content-type', 'application/json')
self.end_headers()
response_data = {}
if self.path == '/data1':
response_data = {"key": "value1"}
elif self.path == '/data2':
response_data = {"key": "value2"}
else:
response_data = {"error": "Not Found"}
self.wfile.write(json.dumps(response_data).encode('utf-8'))
def run_server(server_class=HTTPServer, handler_class=MockServerRequestHandler, port=8080):
server_address = ('', port)
httpd = server_class(server_address, handler_class)
print(f'Starting mock server on port {port}...')
httpd.serve_forever()
if __name__ == '__main__':
run_server()
说明
- BaseHTTPRequestHandler: 处理 HTTP 请求的基类。
- do_GET 方法: 处理 GET 请求,检查 URL 路径并返回相应的 JSON 数据。
- run_server 函数: 启动服务器,监听指定的端口。
运行
- 将代码保存到一个 Python 文件中并运行。
- 服务器将根据请求的 URL 返回不同的 JSON 数据。