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

Flask编写API接收大文本时返回404错误该如何解决

问题根因与解决方案

这个问题的核心原因是请求路径/URL长度超过了网关、服务器或框架的默认限制,长文本传输时路径被截断,无法匹配到已定义的Flask路由所以返回404,短文本时长度在限制内就可以正常响应。

可按以下步骤排查解决:

  • 优先把请求方式从GET改为POST,不要通过URL参数、路由变量传递大文本,全部放到请求体中传输。调整示例如下:
# 错误写法示例(用GET+路由变量/URL参数传文本)
# @app.route('/receive/<input_text>', methods=['GET'])
# def receive(input_text):
#     pass

# 正确写法(用POST取请求体内容)
from flask import Flask, request
app = Flask(__name__)

@app.route('/receive', methods=['POST'])
def receive():
    # 取纯文本请求体
    input_text = request.get_data(as_text=True)
    # 如果是JSON格式传参则用 input_text = request.get_json().get('content')
    # 后续业务逻辑
    return {'code': 0}
  • 调整Flask最大请求体限制,避免框架拦截超大数据:
# 配置最大允许的请求体大小,示例为16MB,可按需调整
app.config['MAX_CONTENT_LENGTH'] = 16 * 1024 * 1024
  • 如果你用了Nginx、Apache等反向代理,调整代理层的请求大小限制,以Nginx为例,在配置的server或location块中添加配置,修改后重载配置生效:
# 示例允许最大20MB请求体,可按需调整
client_max_body_size 20M;
  • 若使用Gunicorn、uWSGI等WSGI服务器,确认没有开启路径长度限制相关的严苛配置,默认配置通常无需修改,若自定义过参数可回滚为默认值测试。

你也可以添加全局请求钩子打印请求路径,快速定位是否出现了路径截断问题:

@app.before_request
def log_request():
    print(f"收到请求:方法={request.method}, 路径={request.path}")

内容的提问来源于stack exchange,提问作者jalal abboud

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 10:45:03