使用requests向Discord支持提交工单遭遇403错误,请求排查原因
导致403错误的常见原因及解决思路
- 缺失或无效的
authenticity_token:Discord支持系统用该令牌防范CSRF攻击,你代码里的authenticity_token是空字符串,这是核心问题。需要先访问工单提交页面,从页面HTML中提取有效的令牌值。 - 请求头不完整:浏览器发送请求时会携带User-Agent、Referer等标识信息,你的请求没有这些,服务器会识别为非浏览器请求并拦截。需添加模拟浏览器的请求头,示例:
headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36", "Referer": "https://support.discord.com/hc/tr/requests/new" } - 请求格式错误:你用
json=payload发送JSON数据,但Discord工单页面实际采用表单(application/x-www-form-urlencoded)格式提交,应改用data=payload。 - 无效的邮箱格式:
request[anonymous_requester_email]填写的"Test"不是合法邮箱,服务器验证字段时会拒绝请求。 - 必填字段未正确赋值:
request[ticket_form_id]是空值,该字段需使用工单页面表单中预设的有效ID。
另外,Discord支持系统存在反爬机制,频繁自动化提交可能触发更严格拦截,建议先手动模拟浏览器请求流程,确保每个参数都准确无误。
内容的提问来源于stack exchange,提问作者CrotaL
相关产品推荐
相关产品推荐

