Übergeben eines Parameters in einem Tornado HttpGet mit mehreren Parametern
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
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