Webhook 请求检查器

粘贴 webhook 方法、请求头和请求体,检查结构并生成可复制的测试命令。

Webhook 请求
每行一个请求头,格式为“名称: 值”。
请粘贴服务器解析前捕获的原始请求体。
请粘贴已捕获的 webhook 请求。
格式化请求体
检查请求后,结果会显示在这里。
签名字段
检查请求后,结果会显示在这里。

仅发现签名检测字段并不能证明请求是真实的——真正的验证需要发送方的签名规则、密钥以及原始请求字节。

本地 cURL 测试
检查请求后,结果会显示在这里。

粘贴的请求只在你的浏览器中处理,BroBroGo 不会上传或保存。

常见问题

支持检查哪些 webhook 请求体?

本工具会识别并格式化 JSON 和 URL 编码表单;XML、multipart、二进制等其他内容按纯文本显示,不会擅自猜测格式。

找到签名字段是否证明请求是真实的?

不能。这里只会列出签名及相关时间戳请求头。真正的验证还需要发送方的签名规则、密钥或公钥,以及原始请求字节。

此页面可以接收实时 webhook 回调吗?

不能。请把已捕获的请求粘贴到这里检查。本页不会创建公网端点、接收回调或发送生成的测试请求。

Webhook 请求结构解析

在对接第三方 API 或构建事件驱动的系统时,Webhook 是实现异步通知的核心机制。一个完整的 Webhook 请求通常由 HTTP 方法、请求头和请求体(Body)三部分组成。

  • HTTP 方法:Webhook 发送方通常使用 POSTPUTPATCH 方法来推送数据,但在某些特定场景下也可能使用 GETDELETE
  • 请求头:承载了元数据,例如内容类型(Content-Type)、客户端标识,以及用于安全校验的签名和时间戳。
  • 请求体:包含事件的具体载荷(Payload)。请求体的格式通常为 JSON 或 URL 编码的表单数据。

理解并准确记录这些结构是排查 Webhook 接收端故障的第一步。


请求头在 Webhook 通信中的作用

请求头不仅决定了接收端如何解析请求体,还承载了安全和路由的关键信息。在 Webhook 通信中,以下两类请求头尤为重要:

  1. 内容类型声明:如 Content-Type: application/jsonContent-Type: application/x-www-form-urlencoded,它直接决定了接收端解析器的工作模式。
  2. 安全签名与时间戳:为了防止重放攻击和数据篡改,发送方通常会在请求头中加入签名(如 X-Hub-SignatureX-Signature)和发送时的时间戳。

本工具在解析请求头时,支持最多 200 行非空请求头,且总字符数限制在 100,000 个字符以内。输入时需遵循每行一个请求头,且格式为“名称: 值”的规则。


Webhook 请求体格式与处理规则

不同的服务商会采用不同的数据格式来发送 Webhook 载荷。最常见的两种格式是 JSON 和 URL 编码表单(URL-encoded)。

本工具针对这两种格式提供了自动识别与格式化功能:

  • JSON 格式:工具会使用 JSON.parse 对其进行解析并重新排版。需要注意的是,此操作会重新调整字段的顺序,因此原始的空白字符和字段排列顺序将会丢失。如果 JSON 结构损坏,工具会提示错误:“请求体看起来是 JSON,但无法解析。”
  • URL 编码表单:工具会将其解码并格式化为易读的键值对。如果表单数据中存在不完整的百分号编码,则会触发错误:“表单请求体包含不完整的百分号转义。”
  • 其他格式:对于 XML、二进制或纯文本等其他类型,工具不会进行格式化,而是保持其原始文本状态。

请求体的最大输入限制为 1,000,000 个字符。如果超出此限制,工具将显示错误:“请求体过长,请控制在 1,000,000 个字符以内。”


签名检测与真实性验证的区别

在检查 Webhook 请求时,识别安全相关的请求头是评估其安全性的第一步。本工具会通过名称模式(如 signaturehmacdigest 以及常见的时间戳命名)自动检索并列出请求头中存在的签名字段。

然而,检测到签名请求头并不等同于验证了请求的真实性

  • 工具的行为:仅检索并展示这些敏感请求头的存在,如果未发现,则显示“没有发现常见签名或 webhook 时间戳请求头。”
  • 真正的验证:必须在您的后端服务器上执行。这需要获取发送方提供的签名密钥(Secret)或公钥,按照发送方指定的算法(如 HMAC-SHA256),对捕获的原始请求体字节流进行计算,并与请求头中的签名值进行比对。本工具不会执行任何密码学计算、算法模拟或重放窗口校验。

本地 cURL 测试命令生成

在开发和调试 Webhook 接收程序时,反复触发第三方的真实 Webhook 既耗时又难以控制变量。一种标准的实践是将捕获到的请求转化为本地 cURL 命令,在本地开发环境中进行模拟测试。

本工具在解析您输入的请求后,会自动生成一个标准的 shell 引用 cURL 命令。该命令具有以下特征:

  • 固定目标地址:生成的 cURL 命令统一指向本地测试地址 http://localhost:3000/webhooks
  • 完整保留元数据:命令中会完整包含您输入的 HTTP 方法和所有有效的请求头。
  • 携带请求体:如果输入了请求体,cURL 命令会通过相应的参数将其完整传递。如果请求体为空,输出部分则会显示“(请求体为空)”。

通过在终端运行此 cURL 命令,您可以直接向本地运行的 Webhook 处理器发送结构完全一致的请求,从而实现高效的本地断点调试。


隐私与本地处理说明

当您使用本工具检查敏感的 Webhook 请求(可能包含订单信息、用户数据或签名密钥)时,数据的安全性至关重要。

本工具的所有处理均在您的浏览器本地完成。您粘贴的方法、请求头和请求体数据不会被上传到 BroBroGo 的服务器,也不会被持久化存储。


常见问题

支持检查哪些 webhook 请求体?

本工具会识别并格式化 JSON 和 URL 编码表单;XML、multipart、二进制等其他内容按纯文本显示,不会擅自猜测格式。

找到签名字段是否证明请求是真实的?

不能。这里只会列出签名及相关时间戳请求头。真正的验证还需要发送方的签名规则、密钥或公钥,以及原始请求字节。

此页面可以接收实时 webhook 回调吗?

不能。请把已捕获的请求粘贴到这里检查。本页不会创建公网端点、接收回调或发送生成的测试请求。