Flask服务返回HTTP 404:传入URL编码参数时异常
Flask路由返回404:含URL编码
%2F的参数匹配问题 问题原因
Flask默认的路由变量(如<cookie>)仅匹配**不包含路径分隔符/**的字符。你传入的URL编码参数里包含%2F,浏览器发起请求时会自动将其解码为/,这会被Flask识别为新的路径分隔符,导致/getExposeIds/<cookie>路由无法匹配完整的请求路径,最终返回404。
解决办法
修改路由规则,使用Flask内置的path转换器,它支持匹配包含/的任意字符:
from flask import Flask app = Flask(__name__) @app.route("/getExposeIds/<path:cookie>") def getExposeIds(cookie): return cookie
效果验证
修改后重新运行应用(flask --app myscript run),再传入原URL编码参数时,Flask会将整个参数内容(包括解码后含/的部分)完整作为cookie参数接收,服务就能正常返回参数内容,不会再出现404错误。
内容的提问来源于stack exchange,提问作者MakePeaceGreatAgain
相关产品推荐
相关产品推荐

