2011-01-15 11 views
5

ich einen Parameter in einer URL übergeben will, wie dies (eine von vielen Paramater durch meine URL zu aktualisieren):Pass eines Parameter in einem Tornado HttpGet mit mehreren Parametern

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

Der Server sagte mir, dass ich das nicht tun kann, weil der Parameter "Geschlecht" fehlt. Wie kann ich tun?

Dank

+0

Sehen Sie eine Anfrage aus dem Protokoll auf der Serverseite? Testen Sie vom Emulator oder einem echten Gerät? – ccheneson

+0

Android Emulator ist lokal mit meinem Tornado WebServer verbunden. Ich habe gerade den Fehler des "fehlenden Parameters" Spitzname "" auf Serverseite gesehen. Kann ich normalerweise einen Parameter wie diesen übergeben? – user420574

Antwort

2

Zuerst scheint Ihre URI falsch.

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

Und wenn Sie von Emulator testen, um zu Webserver 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"); 

Bearbeiten: Die Antwort auf dieses OP ist unten:

Es scheint aus dem Beispiel bei tornadoweb.org/documentation, dass Sie einen Standardwert festlegen können. So können Sie etwas wie gender = self.get_argument("gender",None) versuchen. Also Geschlecht sollte auf None gesetzt werden, wenn Sie keine gender Parameter in der Abfragezeichenfolge übergeben

+0

Natürlich übergab ich meine URL wie folgt: httpGet.setURI (neue URI (192.168.0.1:8888/user? "Nickname" = "John") – user420574

+0

Meiner Meinung nach kann ich nicht einen Parameter mit einer URL übergeben whitch take two. Vielleicht können Sie bestätigen? – user420574

+1

Ja, Sie können, auf der Serverseite, werden sie ein Fehler obwohl bei der Bewertung der 2. Parameter.Ich lesen Sie einfach Ihre OP und Sie können neue Parameter URL mit 'hinzufügen & 'like' httpGet.setURI (neuer URI (url + "/ user? nickname = John & gender = M") ' – ccheneson