调试 HTTP 请求是后端开发中的日常操作。无论是排查 API 问题还是分析第三方服务的行为,能够直观地查看请求细节都至关重要。今天介绍的 httpdbg 就是一款专门为此设计的 Python 调试工具。

项目概览

httpdbg 是一个轻量级的 Python HTTP 调试工具,由 cle-b 开发维护。它支持多种主流 HTTP 客户端库,包括 requests、httpx、aiohttp、urllib3 等,甚至支持 FastAPI 和 Flask 等 Web 框架的调试。

核心特点:

  • 零代码侵入 —— 无需修改现有代码,通过环境变量或命令行即可启用
  • 多库支持 —— 兼容 Python 生态中最流行的 HTTP 库
  • Web UI 界面 —— 提供可视化的请求查看界面,比日志输出更直观
  • pytest 集成 —— 原生支持 pytest 测试框架的调试

安装与使用

pip install httpdbg

最基础的使用方式是通过命令行包装你的 Python 脚本:

python -m httpdbg your_script.py

或者作为 pytest 插件:

python -m pytest --httpdbg

启动后会自动打开 Web 界面,默认地址是 http://localhost:49062,在这里你可以看到所有 HTTP 请求的详细信息:

  • 请求方法和 URL
  • 请求头和请求体
  • 响应状态码和内容
  • 请求耗时

实战示例

假设你有一个使用 requests 的脚本:

import requests

response = requests.get("https://api.github.com/users/cle-b")
print(response.json())

使用 httpdbg 调试:

python -m httpdbg script.py

浏览器会自动打开调试界面,显示这次请求的完整信息,包括请求头、响应体等细节,无需在代码中添加任何 print 语句。

适用场景

  • API 开发调试 —— 快速验证后端 API 的请求响应
  • 第三方服务排查 —— 分析外部 API 的行为
  • 测试调试 —— 在 pytest 中追踪 HTTP 交互
  • 教学演示 —— 可视化展示 HTTP 请求过程

总结

httpdbg 以其简洁的设计和强大的兼容性,成为了 Python HTTP 调试场景下的实用工具。898 个 Star 说明它已经被不少开发者认可,但相比同类工具仍有很大的发现空间。如果你在 Python 开发中经常需要处理 HTTP 请求,值得一试。


项目信息: