GET查询字符串值中的(u',)是什么原因以及为什么它被正确解析?

时间:2014-12-11 11:12:44

标签: python unicode get

Pingdom webhook API将消息发送为GET,如下所示:

GET /17hfb1r1?message=(u'{"check": "1448865", "checkname": "Webhook Test Site - IGNORE", "host": "3eda0234.ngrok.com", "action": "assign", "incidentid": 335, "description": "down"}',)&aid=(u'monitoring',)

请注意,每个querystring参数似乎都包含在(u'',)中,我认为这是一个Python的东西(所以可能是Pingdom webhook实现中的一个错误?)。

现在,奇怪的是我尝试了三种不同的webhook接收器(即HTTP服务器),所有正确处理 (u'',)信封。通过正确处理,我的意思是他们删除信封,留下包含的值。这些是:

  1. Requestbin
  2. Tomcat / Clojure Ring网络服务器
  3. Scala Spray网络服务器
  4. 所有这些都正确处理它的事实让我(u'',)GET查询字符串参数值的可接受信封,但我找不到任何关于此的文档。

    什么可以在Pingdom的一侧生成(u'',)信封,为什么Web服务器可以容忍它?

1 个答案:

答案 0 :(得分:1)

我认为错误在于Requestbin的实施。

当我测试时:

curl "http://requestb.in/xxxxxx?beep=meepmeep2"

Requestbin显示:

GET /xxxxxx?beep=(u'meepmeep2',)

但是,将curl重定向到本地“dumper”脚本(使用Tornado),我得到了:

uri='/xxxxxx?beep=meepmeep2'

(注意,在评论中,我在“meepmeep”之后意外删除了数字“2”)