httpdbg:轻松调试 HTTP 请求与响应

无论是开发 Web 服务、API 还是客户端应用程序,我们常常需要跟踪请求的流向、响应内容以及状态码等关键数据。而开源工具 httpdbg 就是一个专为 HTTP 调试而设计的轻量级工具,它能帮助开发者实时捕获和分析 HTTP 流量,让开发、调试过程变得更加高效和直观。

主要特点

    • 实时查看 HTTP 请求与响应

      • 所有的 HTTP 请求都可以通过 httpdbg 捕获,开发者可以在 Web 浏览器中实时查看这些请求的详细内容,包括请求头、响应头、请求体和响应体。
    • 与 Python 脚本兼容

      • 可以直接通过命令行启动 httpdbg 来跟踪执行的脚本,帮助开发者调试 Python 程序中的 HTTP 请求。
    • 支持多种常见 HTTP 库

      • httpdbg 支持 Python 中常用的 HTTP 客户端库,包括 requestsurllib3httpxaiohttp 等,甚至可以通过命令行参数添加自定义的发起方包。
    • 集成测试框架

      • httpdbg 可以与 pytestunittest 等测试框架集成,允许开发者在测试过程中查看所有发出的 HTTP 请求。
    • 灵活的配置与控制

      • 通过 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 还支持与测试框架集成。在使用 pytestunittest 执行测试时,所有的 HTTP 请求都会被自动捕获和显示:

pyhttpdbg -m pytest [arg1 --arg2 ...]

请求将按测试用例分组,且在 setupteardown 方法中发出的请求会特别标记。

使用自定义启动器

你还可以添加自定义的启动器包。使用 -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/

上一篇
下一篇