Webhook / 回调调测器
拿一个临时地址,把回调指过去,查看请求体与保留的请求头,适合调试 HiAPI 任务式 API 回调。超过 64 KiB 的 POST 请求体返回 413,不存储也不截断;Cookie、转发/客户端 IP 及入口密钥请求头不会保留。
谁拿到这个地址都能读到这里的内容,到期后全部销毁。不要用于生产流量或敏感数据。
由你的浏览器往这个地址发一条示例报文,接线前先看看效果。
发送方收到的响应
改这里可以实测重试:返回非 2xx,HiAPI 会重投回调,重试节奏直接在列表里看出来。
请求列表
等待第一条请求…
把回调指向上面的地址,或直接发一个测试请求看看效果。
请求详情
选择一条请求,查看它的请求头和请求体。
用这个回调地址创建任务
复制下面的内容,替换 key 和模型名即可运行。
curl -X POST https://api.hiapi.ai/v1/tasks \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "happyhorse-1.0",
"callback": { "url": "https://www.hiapi.ai/api/tools/webhook-tester/hook/YOUR_TOKEN", "when": "final" },
"input": { "prompt": "a cyan glass data center entrance", "duration": 5, "resolution": "720p" }
}'这个工具做不到什么
- 这里只比对 HiAPI HMAC 签名是否一致,不校验时间新鲜度、不能防重放,也不能单凭匹配证明来源。没设签名密钥时任何来源的 POST 都长得一样。
- 请求体超过 64 KiB 会返回 413,不存储也不截断。Cookie、转发/客户端 IP 及入口密钥请求头不保留。
- 重放不是原始请求的完整复制:浏览器会移除部分请求头;CORS、混合内容和本地网络权限可能拦截请求,localhost 不保证可达。
- 不能反查任务 —— 这里只收报文,读不到任务状态、余额或产物列表。
- 不是永久存储 —— 地址和内容在 24 小时后销毁,不要用它接生产或敏感数据。
- 地址即凭证 —— 谁拿到地址谁就能读到这里的内容。
- 本地开发时 HiAPI 够不到 localhost —— 真实回调需要在公网地址上试,本页给出的就是公网地址。
三步调通一个 Webhook
01复制临时地址
打开页面后复制给出的地址。它存活 24 小时,接受任何来源的 POST。
02把回调指过来
在 api.hiapi.ai 创建异步任务时,把它填进 callback.url;也可以直接点「发一个测试请求」立刻试一次。
03看请求内容
请求到达即出现在列表里。可查看请求头、请求体、Content-Type;粘贴 webhook 签名密钥即可在本地校验签名。
Webhook 调试常见问题
Webhook 调试工具是干什么的?
它给你一个能接收 HTTP 请求的地址,展示保留的请求头与请求体。Cookie、转发/客户端 IP 及入口密钥请求头会被移除;超过 64 KiB 的请求体返回 413,不存储也不截断。接异步 API 时,不必为了读一条回调先搭一个服务器。
怎么用它调试 HiAPI 的回调?
在 api.hiapi.ai/v1/tasks 创建任务时,把本页给出的地址填进 callback.url。任务进入终态后,HiAPI 会把结果 POST 到这里,请求随即出现在列表中。
本地开发时,为什么在 api.hiapi.ai 上收不到回调?
回调地址必须能从公网访问。你自己这台机器通常不是,所以 localhost 地址永远收不到真实的 HiAPI 回调。用一个公网地址,比如本页给出的这个。
能确认回调确实来自 HiAPI 吗?
设过 webhook 签名密钥后,本工具使用保留的请求体和 X-HiAPI-Timestamp 在本地重算 HMAC-SHA256,与 X-HiAPI-Signature 比对。匹配只说明与该密钥一致,不校验时间新鲜度,也不能防重放。没设密钥时没有签名可比对。
我填的签名密钥会发到你们服务器吗?
不会。密钥只在你的浏览器里参与计算签名,不上传、不存储、不记录。发到我们服务器的请求里也不包含它。
地址有效期多久?数据怎么处理?
地址和它收到的内容在 24 小时后一并销毁,每个地址最多保留 50 条请求。请把这个地址当作凭证看待:谁拿到它谁就能读到这里的内容,所以不要用于生产流量或敏感数据。
能看出 HiAPI 失败回调的重试规律吗?
可以,这也正是响应状态可配置的原因。把响应设成 400 或 500,触发一次真实任务,列表里的到达时间就直接反映出重试节奏:立即重试,然后是 +1 分钟、+5 分钟、+20 分钟,共 4 次。
可以重放某条请求吗?
可以尝试从浏览器重新发送,但不是原始请求的完整复制。不会转发 Cookie、Authorization、代理/平台及浏览器控制的请求头,也不跟随重定向。目标必须允许 CORS;HTTPS 页面访问 HTTP 的混合内容限制和浏览器本地网络权限也可能拦截请求,localhost 不保证可达。浏览器报错不代表目标一定没收到,请先查目标日志再决定是否重试。