6

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

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

Python中的服务器端:

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”。我能怎么做?

谢谢

4

1 回答 1

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

于 2011-01-15T19:00:30.867 回答