仅返回提供的参数时 Flask 服务器上的 HTTP 404

问题描述 投票:0回答:1

我有一个像这样的简单烧瓶应用程序:

from flask import Flask

app = Flask(__name__)

@app.route("/getExposeIds/<cookie>")
def getExposeIds(cookie):
    
    return cookie

我运行应用程序如下:

flask --app myscript run

当我使用

localhost:5000/getExposeIds/whatever
在浏览器中调用该网址时,一切都会按预期工作,并且我的服务返回
"whatever"
。但是,当我提供像这样的(网址编码的)值时

aws-waf-token%3D48eba622-3632-46b6-ae55-9f0637582425%3ACQoAmXuXthkqAQAA%3AhoU4a212KQ5MCAFIDflGc6vLRzYVJJAyzQS4mY%2BinAkE00MuRpE5YMc9ayD3wiUe4WEsggWn8fGH4holoE6w8khw3YTuOXQ0mUJcwmTyBAeswFnUzqPa1XvrK1DCsAazLqsI8o9RYwTDQ%2BflHbw12xJ9yfb0E7Vx6Y6d07ATWI1FbJDGb%2BzkbuY8WCCiM%2Bi6KA0%2B9u0jD59M%2FYwoPOdM2g%3D%3D

我收到 HTTP 404。

python flask
1个回答
0
投票

我相信这个问题正如 Michael Logothetis 所建议的那样。由于

%2F
,您遇到了问题。默认情况下,Flask 会自动解码您作为
string
传递的参数(请参阅 https://flask.palletsprojects.com/en/stable/api/#url-route-registrations)。您可以指定一个转换器,以适应字符串可能包含
/
的情况,使用
/getExposeIds/<path:cookie>
作为端点。

© www.soinside.com 2019 - 2024. All rights reserved.