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

È stato utile?

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top