Passare un parametro in un Tornado HttpGet con diversi parametri
Domanda
Voglio passare un parametro in un URL (per l'aggiornamento una delle tante paramaters contenuta dal mio URL) in questo modo:
httpGet.setURI(new URI(url/user?"nickname"="John")
ServerSide in 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),
])
Il server mi ha detto che non posso fare questo perché il parametro di "genere" è mancante. Come posso fare?
Grazie
Soluzione
In primo luogo l'URI sembra essere sbagliato.
httpGet.setURI(new URI(url + "/user?nickname=John")
E se si prova da emulatore di server web e si utilizza sia sulla stessa macchina, utilizzare l'indirizzo IP del server, invece di qualcosa come localhost
o 127.0.0.1
Esempio:
String url = "http://192.168.1.104";
httpGet.setURI(new URI(url + "/user?nickname=John");
Modifica La risposta a questa OP è qui sotto:
sembra dall'esempio in tornadoweb.org/documentation che è possibile impostare un valore predefinito. Così si può provare qualcosa di simile gender = self.get_argument("gender",None)
. Così genere deve essere impostato su None
se non passa qualsiasi parametro gender
nella stringa di query