1

私は私のAndroidアプリから次のURLを渡します

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、URLが次のように変更されます

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

ここで何が起こっているのですか?これは私を夢中にさせています。

4

1 に答える 1

1

ここで起こっていることはパーセントエンコーディングとして知られています。はの%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
于 2013-03-04T20:43:12.303 に答える