无论是开发 Web 服务、API 还是客户端应用程序,我们常常需要跟踪请求的流向、响应内容以及状态码等关键数据。而开源工具 httpdbg 就是一个专为 HTTP 调试而设计的轻量级工具,它能帮助开发者实时捕获和分析 HTTP 流量,让开发、调试过程变得更加高效和直观。
主要特点
-
-
实时查看 HTTP 请求与响应
- 所有的 HTTP 请求都可以通过 httpdbg 捕获,开发者可以在 Web 浏览器中实时查看这些请求的详细内容,包括请求头、响应头、请求体和响应体。
-
与 Python 脚本兼容
- 可以直接通过命令行启动 httpdbg 来跟踪执行的脚本,帮助开发者调试 Python 程序中的 HTTP 请求。
-
支持多种常见 HTTP 库
- httpdbg 支持 Python 中常用的 HTTP 客户端库,包括
requests
、urllib3
、httpx
、aiohttp
等,甚至可以通过命令行参数添加自定义的发起方包。
- httpdbg 支持 Python 中常用的 HTTP 客户端库,包括
-
集成测试框架
- httpdbg 可以与
pytest
和unittest
等测试框架集成,允许开发者在测试过程中查看所有发出的 HTTP 请求。
- httpdbg 可以与
-
灵活的配置与控制
- 通过 Web 界面,你可以自定义请求的分组方式、隐藏特定内容或将请求固定,满足不同的调试需求。
-
安装和使用
如何安装
安装 httpdbg 非常简单,只需要使用 pip
安装即可:
pip install httpdbg
如何使用(使用测试由YxVM提供支持)
启动交互式控制台
在命令行中运行以下命令即可启动 httpdbg 的交互式控制台:
pyhttpdbg
控制台启动后,输入 Python 代码时,所有的 HTTP 请求都会被捕获并显示在 Web 浏览器中。访问 http://localhost:4909/
来查看详细的请求内容。
跟踪 Python 脚本中的 HTTP 请求
你还可以使用 httpdbg 来跟踪脚本中的 HTTP 请求:
pyhttpdbg --script filename.py [arg1 --arg2 ...]
例如,运行 filename.py
脚本时,所有发出的 HTTP 请求都会被捕获并显示在浏览器中。
跟踪模块中的 HTTP 请求
如果你想查看某个 Python 库或模块中的 HTTP 请求,可以使用 -m
参数。例如,查看 pip
在安装软件包时发出的所有 HTTP 请求:
pyhttpdbg -m pip install package-name --upgrade
跟踪测试中的 HTTP 请求
httpdbg 还支持与测试框架集成。在使用 pytest
或 unittest
执行测试时,所有的 HTTP 请求都会被自动捕获和显示:
请求将按测试用例分组,且在 setup
或 teardown
方法中发出的请求会特别标记。
使用自定义启动器
你还可以添加自定义的启动器包。使用 -i
参数指定你想要追踪的 HTTP 请求源:
pyhttpdbg -i my_package --script my_script.py
配置与 Web 界面
httpdbg 提供了一些配置选项,你可以通过命令行自定义 Web 界面的行为:
- 修改请求的分组策略。
- 在 URL 中隐藏协议和网络位置。
- 隐藏分组行和标签。
例如,默认隐藏分组行的 URL 为:
http://localhost:4909/?hi=on
Web 界面
通过 Web 界面,你可以查看记录的所有请求。即使 Python 程序停止运行,Web 页面仍然可以访问请求内容,除非手动强制退出。新的请求会自动清理旧的请求记录。
总结
httpdbg 是一个功能强大的工具,适用于调试 Python 程序中的 HTTP(S)请求。它简单易用,支持 Python 脚本、测试框架和常用的 HTTP 客户端库。通过交互式控制台和 Web 界面,开发者可以实时查看和分析 HTTP 请求,快速定位问题,提高调试效率。
如果你是 Python 开发者,尤其是在处理 HTTP 请求时,httpdbg 无疑是一个值得尝试的工具,能够大大提升你的调试体验。
完整文档可访问:https://httpdbg.readthedocs.io/