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

use*_*574 6 python android http-get tornado http-post

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

httpGet.setURI(new URI(url/user?"nickname"="John") 
Run Code Online (Sandbox Code Playgroud)

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),
  ])
Run Code Online (Sandbox Code Playgroud)

服务器告诉我,我不能这样做,因为缺少参数"性别".我能怎么做?

谢谢

cch*_*son 2

首先你的 URI 似乎是错误的。

httpGet.setURI(new URI(url + "/user?nickname=John") 
Run Code Online (Sandbox Code Playgroud)

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

例子:

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

编辑: 这个OP的答案如下:

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