使用多个参数在Tornado HttpGet中传递一个参数

时间:2011-01-15 18:25:46

标签: python android http-post tornado http-get

我想在Url中传递一个参数(更新我的网址包含的许多参数之一),如下所示:

httpGet.setURI(new URI(url/user?"nickname"="John") 

Python中的ServerSide:

class GetInfo(BaseHandler):
  def Get(self):
        nickname = self.get_argument("nickname")
        gender = self.get_argument("gender")
        logging.info(nickname)
        logging.info(gender)

  application = tornado.web.Application([
  (r"/", MainHandler),
  (r"/user", GetInfo),
  ])

服务器告诉我我不能这样做,因为缺少参数“gender”。 我该怎么办?

谢谢

1 个答案:

答案 0 :(得分:2)

首先你的URI似乎错了。

httpGet.setURI(new URI(url + "/user?nickname=John") 

如果您从模拟器测试到网络服务器并且您在同一台计算机上使用它们,请使用服务器的IP地址而不是localhost127.0.0.1

示例:

String url = "http://192.168.1.104";
httpGet.setURI(new URI(url + "/user?nickname=John");

<击>

修改 这个OP的答案如下:

从tornadoweb.org/documentation的示例中可以看出,您可以设置默认值。所以你可以试试像gender = self.get_argument("gender",None)这样的东西。因此,如果您未在查询字符串中传递任何None参数,则应将性别设置为gender