fix(cmcc): webhook 失败诊断(400 只报状态码等于瞎眼)
真机 2026-11-09 08:40 首跑:webhook HTTP 400,日志只有「失败」两个字, 无从判断是鉴权头缺失、Content-Type 与模板矛盾,还是路径不对。 现在失败时打:请求体前 80 字符 + 服务端响应前 300 字符 + 400/401/403 分诊提示。
This commit is contained in:
@@ -172,7 +172,17 @@ def send_notify(title, content):
|
|||||||
r = requests.post(hook, data=body.encode("utf-8"), headers=hdrs, timeout=15)
|
r = requests.post(hook, data=body.encode("utf-8"), headers=hdrs, timeout=15)
|
||||||
ok = 200 <= r.status_code < 300
|
ok = 200 <= r.status_code < 300
|
||||||
sent = sent or ok
|
sent = sent or ok
|
||||||
log("[通知] webhook HTTP %d %s" % (r.status_code, "成功" if ok else "失败"))
|
if ok:
|
||||||
|
log("[通知] webhook HTTP %d 成功" % r.status_code)
|
||||||
|
else:
|
||||||
|
# ★ 400/401 必须看到服务端说了什么,否则永远不知道为什么推不出去
|
||||||
|
log("[通知] webhook HTTP %d 失败 | 请求体前80=%r | 响应=%r" % (
|
||||||
|
r.status_code, body[:80], (r.text or "")[:300]))
|
||||||
|
if r.status_code in (401, 403):
|
||||||
|
log("[通知] 提示:webhook 需要鉴权头,检查 WEBHOOK_HEADERS 里有没有 Token/Authorization 行")
|
||||||
|
elif r.status_code == 400:
|
||||||
|
log("[通知] 提示:服务端嫌请求体不合法。核对 WEBHOOK_CONTENT_TYPE 与 WEBHOOK_BODY 模板是否自相矛盾"
|
||||||
|
"(JSON 内容必须配 application/json)")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
log("[通知] webhook 异常 %r" % e)
|
log("[通知] webhook 异常 %r" % e)
|
||||||
if token:
|
if token:
|
||||||
|
|||||||
Reference in New Issue
Block a user