在Tornado HttpGet中传递一个参数和多个参数
我想在一个网址里传递一个参数(用来更新我网址中包含的多个参数之一),像这样:
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),
])
服务器告诉我,我不能这样做,因为缺少了“性别”这个参数。我该怎么做呢?
谢谢
1 个回答
2
首先,你的URI(统一资源标识符)似乎是错误的。
httpGet.setURI(new URI(url + "/user?nickname=John")
如果你在模拟器和网络服务器之间进行测试,并且这两个都在同一台机器上,记得使用服务器的IP地址,而不是像localhost
或127.0.0.1
这样的东西。
举个例子:
String url = "http://192.168.1.104";
httpGet.setURI(new URI(url + "/user?nickname=John");
补充: 下面是对这个问题的回答:
从tornadoweb.org/documentation的例子来看,你可以设置一个默认值。所以你可以尝试像gender = self.get_argument("gender",None)
这样的写法。如果你在查询字符串中没有传递任何gender
参数,那么gender就会被设置为None
。