Frage

Ich möchte einen Parameter in einer URL übergeben (zum Update einer von vielen Paramater durch meine URL enthalten sind) wie folgt aus:

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

Die 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),
  ])

Der Server hat mir gesagt, dass ich das nicht tun kann, weil der Parameter „Geschlecht“ fehlt. Wie kann ich tun?

Danke

War es hilfreich?

Lösung

Erster Ihre URI scheint falsch zu sein.

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

Und wenn Sie vom Emulator Webserver testen und Sie beide auf der gleichen Maschine, verwenden Sie die IP-Adresse des Servers anstelle von etwas wie localhost oder 127.0.0.1

Beispiel:

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

Edit: Die Antwort auf diese OP unter:

es scheint aus dem Beispiel bei tornadoweb.org/documentation dass Sie einen Standardwert festlegen. So können Sie so etwas wie gender = self.get_argument("gender",None) versuchen. So Geschlecht sollte None eingestellt werden, wenn Sie irgendeine gender Parameter im Query-String übergeben dont

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top