我有一个简单的烧瓶应用程序,如下所示:
from flask import Flask
app = Flask(__name__)
@app.route("/getExposeIds/<cookie>")
def getExposeIds(cookie):
return cookie
我正在按如下方式运行该应用程序:
flask --app myscript run
当我在浏览器中使用调用该 URL 时,localhost:5000/getExposeIds/whatever
一切都按预期工作,我的服务返回"whatever"
。但是,当我提供一个像这样的 (url 编码) 值时
aws-waf-token%3D48eba622-3632-46b6-ae55-9f0637582425%3ACQoAmXuXthkqAQAA%3AhoU4a212KQ5MCAFIDflGc6vLRzYVJJAyzQS4mY%2BinAkE00MuRpE5YMc9ayD3wiUe4WEsggWn8fGH4holoE6w8khw3YTuOXQ0mUJcwmTyBAeswFnUzqPa1XvrK1DCsAazLqsI8o9RYwTDQ%2BflHbw12xJ9yfb0E7Vx6Y6d07ATWI1FbJDGb%2BzkbuY8WCCiM%2Bi6KA0%2B9u0jD59M%2FYwoPOdM2g%3D%3D
我收到 HTTP 404。
我认为问题正如 Michael Logothetis 所言。您遇到问题是因为。默认情况下
%2F
,Flask 会自动解码您传递的参数(请参阅https://flask.palletsprojects.com/en/stable/api/#url-route-registrations)。您可以指定一个转换器,以适应您的字符串可能包含 ,方法是使用作为端点。string
/
/getExposeIds/<path:cookie>