我从我的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/
这里发生了什么?这让我发疯了。
答案 0 :(得分: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