Eu tenho um aplicativo de frasco simples como este:
from flask import Flask
app = Flask(__name__)
@app.route("/getExposeIds/<cookie>")
def getExposeIds(cookie):
return cookie
Estou executando o aplicativo da seguinte maneira:
flask --app myscript run
Quando chamo essa url no meu navegador usando localhost:5000/getExposeIds/whatever
tudo funciona como esperado e meu serviço retorna "whatever"
. No entanto, quando forneço um valor (codificado por url) como este
aws-waf-token%3D48eba622-3632-46b6-ae55-9f0637582425%3ACQoAmXuXthkqAQAA%3AhoU4a212KQ5MCAFIDflGc6vLRzYVJJAyzQS4mY%2BinAkE00MuRpE5YMc9ayD3wiUe4WEsggWn8fGH4holoE6w8khw3YTuOXQ0mUJcwmTyBAeswFnUzqPa1XvrK1DCsAazLqsI8o9RYwTDQ%2BflHbw12xJ9yfb0E7Vx6Y6d07ATWI1FbJDGb%2BzkbuY8WCCiM%2Bi6KA0%2B9u0jD59M%2FYwoPOdM2g%3D%3D
Recebo um HTTP 404.
Acredito que o problema é como Michael Logothetis sugeriu. Você está tendo problemas por causa do
%2F
. O Flask está decodificando automaticamente o parâmetro que você está passando como astring
por padrão (veja https://flask.palletsprojects.com/en/stable/api/#url-route-registrations ). Você pode especificar um conversor para acomodar a possibilidade de que sua string inclua a/
usando/getExposeIds/<path:cookie>
como seu ponto final.