колба не обрабатывает uriencoded параметры одинаково на appengine и dev_appserver - PullRequest
0 голосов
/ 03 мая 2018

Я боролся с этим некоторое время, и не могу понять это. У меня есть проект google appengine с flask, и мне нужен маршрут, который обрабатывает данные base64 URIencoded.

Вот обработчик, который у меня есть для этого маршрута:

@app.route('/test/<data1>/<data2>', methods=['GET'])
def test(data1, data2):
    return "data1:%s<br>data2:%s"%(data1, data2)

Теперь, это хорошо работает при работе с dev_appserver:

http://localhost/test/hi/there
# returns:
data1:hello
data2:there

и

http://localhost/test/hi%2fho/there
# returns:
data1:hi%2Fho
data2:there

что я и ожидал.

Использование тех же URL в развернутой версии для appengine:

  • Первый возвращает тот же результат
  • Второй сбой, потому что %2f декодируется перед маршрутизацией на /, поэтому маршрут больше не соответствует шаблону.

Мой вопрос (ы):

  • Почему appengine (или колба?) Декодирует URL перед маршрутизацией?
  • Почему поведение не соответствует между локальным и развернутым приложением?

Спасибо за вашу помощь

1 Ответ

0 голосов
/ 03 августа 2019

Я создал проблему в системе отслеживания проблем Google, и кто-то подтвердил ее.

Полагаю, нам просто нужно подождать.

...