You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python Requests请求出现504 Gateway Time-out问题求助

问题分析与解决办法

可能原因及对应解决方案

1. 未设置请求超时,触发网关超时限制

当前requests.post调用未设置超时时间,脚本会一直等待目标API响应,最终触发网关的504超时。
修改test.py中的POST请求代码,添加超时参数:

# 替换原POST请求行
p = s.post(post_url, data=post_data, headers=headers, timeout=10)  # 超时时间可根据实际场景调整

2. 全局会话对象导致连接异常

全局的requests.Session()对象长期运行后,连接池中的连接可能失效,无法正常发送请求。
将会话对象移到函数内部创建,避免长期持有无效连接:

def work_request(response_id):
    # 在函数内创建会话
    s = requests.Session()
    # 后续日志、请求逻辑保持不变...

3. 认证令牌失效或API端处理异常

虽然日志ID正常,但令牌Bearer gjhnjkfhsdafkanfjkadnjk可能已过期,导致API端处理缓慢或拒绝请求,间接引发超时。

  • 验证令牌有效性,替换为新的有效令牌
  • 添加异常捕获,打印详细错误信息定位问题:
try:
    p = s.post(post_url, data=post_data, headers=headers, timeout=10)
    p.raise_for_status()  # 主动抛出HTTP错误
    print(p.text)
except requests.exceptions.RequestException as e:
    print(f"请求错误: {str(e)}")
    logging.error(f"请求错误: {str(e)}")

4. CGI脚本执行超时限制

服务器的CGI执行时间配置过短,脚本还未完成API请求就被终止,返回504。

  • 检查服务器(如Apache/Nginx)的CGI超时配置,延长允许的执行时间
  • 考虑将API请求逻辑改为异步处理(如用消息队列),避免CGI同步等待响应

5. 目标API端点或路由异常

虽然网络连通性正常,但API端点https://api.animose/devb/io可能路径变更,或中间路由出现延迟。
直接在服务器上用curl测试API端点,确认是否能快速响应:

curl -X POST -H "Content-Type: application/json" -H "Authorization: Bearer gjhnjkfhsdafkanfjkadnjk" -d '{"work": {"id": "TK-TEST231V3NK", "link": "https://api.animose/", "source": "animose"}}' https://api.animose/devb/io

如果curl也超时,说明问题在API端或网络路由,联系API服务商排查;如果curl正常,再回到脚本排查代码逻辑。


内容的提问来源于stack exchange,提问作者Ben David

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 15:22:45