使用Python和GAE对编码的URL查询参数进行不一致的解码

时间:2012-04-24 14:43:59

标签: python ios google-app-engine url-encoding

我正在尝试在提交之前在我的移动客户端中获取一致的URL字符串,并且在收到服务器之后,为了安全校验和目的,能够可靠地添加哈希。目前我在客户端上添加了URL编码之后的哈希值,并尝试在服务器上解码任何内容之前获取URL,但是我已经解码了一个字符(句点):

当我发布这样的内容时:

 https://myapp.appspot.com/endpt?par=0%3Afirstlast%40gmail%2Ecom&di . . .

服务器上的这个:

self.request.url 

我明白了:

https://myapp.appspot.com/endpt?par=0%3Afirstlast%40gmail.com&di . . .

从此:

self.request.get('par')

我按照我的预期完全解码了它:

0:firstlast@gmail.com

我想知道如何在发生任何解码之前抓取URL?或者,如果可以抓取整个查询部分解码的URL,我可以在编码/解码之外进行散列处理吗?即我可以在任何时候注入我的哈希,我可以获得一致,可靠的结果。感谢。

1 个答案:

答案 0 :(得分:0)

您可以直接从WSGI环境中获取此内容,但我建议改为使用Amazon's book中的页面,并定义用于签名URL的规范格式。然后,您可以在两端以相同的方式对URL进行编码和格式化,并且您不必依赖框架和代理的变幻莫测,不要干扰URL的简单编码细节。