【问题标题】:flask route variable alters uriencoded string烧瓶路由变量改变了uriencoded字符串
【发布时间】:2013-03-04 20:22:24
【问题描述】:

我正在通过我的 android 应用程序传递以下网址

http://server.com/core/put/18.00283670425415/59.353229999542236/%5BB%40463336a0/

最后一个参数是一个 URI 编码的字符串。 在 Flask 中,我的路线看起来像

@server.route('/put/<long>/<lat>/<tagline>/')
def put(long, lat, tagline):
    return tagline 

我得到[B@463336a0 作为返回,我的网址更改为

http://server.com/core/put/18.00283670425415/59.353229999542236/[B%40463336a0/

这里发生了什么?这快把我逼疯了。

【问题讨论】:

    标签: python flask


    【解决方案1】:

    这里发生的事情被称为percent-encoding%5B[ 的百分比编码,%40@ 的百分比编码。

    您需要确保您的 Android 应用发送 转义 URI。在这种特殊情况下,它看起来像这样(为清楚起见,简化示例):

    >>> import urllib
    >>> unescaped_url = '%5BB%40463336a0'
    >>> escaped_url = urllib.quote(unescaped_url)
    '%255BB%2540463336a0'
    >>> unescaped_url == urllib.unquote(escaped_url)
    True
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-09
      • 2020-12-21
      • 2017-11-22
      • 1970-01-01
      • 2020-10-09
      相关资源
      最近更新 更多