Fossil 2.6配置Discord/Slack类Webhook无响应问题求助
我之前也踩过Fossil TH1和外部Webhook交互的坑,结合你描述的情况——Postman能正常跑但Fossil里没反应,咱们一步步来定位问题:
先关掉异步模式,获取调试信息
你用了-asynchronous参数,这个会让Fossil不等待请求响应直接继续执行,自然看不到任何错误提示。先把这个参数去掉,执行命令:http https://discordapp.com/api/webhooks/443395012672094208/(redacted) {"content": "hello there"}这样如果请求有问题,Fossil会返回HTTP状态码或者错误信息,比如400(请求格式错)、403(权限问题),能帮你快速定位方向。
修正TH1的JSON请求体格式
Discord的Webhook要求请求体是标准JSON,而你原来的命令里用了单引号'hello there',JSON规范里字符串必须用双引号,而且键名也得是双引号。Postman会自动兼容这种不规范的写法,但TH1的http命令对JSON语法更严格。把请求体改成:{"content": "hello there"}添加Content-Type请求头
很多Webhook服务(包括Discord)需要明确指定请求的Content-Type为application/json,Postman默认会帮你加上这个头,但Fossil的http命令不会自动添加。修改后的完整命令应该是:http -header "Content-Type: application/json" https://discordapp.com/api/webhooks/443395012672094208/(redacted) {"content": "hello there"}确认没问题后,再把
-asynchronous加回去。检查Fossil的网络访问权限
Fossil有个allow-net配置项,用来限制允许访问的外部网络地址。如果这个配置没包含Discord的域名,请求会被拦截。执行以下命令检查:fossil config get allow-net如果返回结果为空或者没有
https://discordapp.com,就执行:fossil config set allow-net https://discordapp.com这样就能允许Fossil向Discord发送请求了。
核对Webhook URL的准确性
虽然Postman里能用,但还是要确认Fossil里的URL有没有拼写错误——比如redacted部分有没有漏字符、多空格,或者复制时不小心改了内容,这种低级错误有时候很容易忽略。
按照上面的步骤排查,应该能解决你遇到的无响应问题。
内容的提问来源于stack exchange,提问作者Jacob Morrison

