菜鸟笔记
提升您的技术认知

使用python mock一个http服务器-ag真人官方网

可以使用 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 数据。
网站地图