我有一个像这样的简单烧瓶应用程序:
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。
我相信这个问题正如 Michael Logothetis 所建议的那样。由于
%2F
,您遇到了问题。默认情况下,Flask 会自动解码您作为 string
传递的参数(请参阅 https://flask.palletsprojects.com/en/stable/api/#url-route-registrations)。您可以指定一个转换器,以适应字符串可能包含 /
的情况,使用 /getExposeIds/<path:cookie>
作为端点。