2011-01-15 19 views
5

quiero pasar un parámetro en una dirección URL (para actualizar uno de muchos parametros contenidos en mi URL) de esta manera:paso de un parámetro en un tornado HttpGet con varios parámetros

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

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

El servidor me dijo que no puedo hacer esto porque falta el parámetro "género". ¿Cómo puedo hacer?

Gracias

+0

¿Ve alguna solicitud del registro en el lado del servidor? ¿Pruebas desde el emulador o un dispositivo real? – ccheneson

+0

Emulador de Android conectado en local a mi Tornado WebServer. Acabo de ver el error de "apodo de parámetro faltante" "en el lado del servidor. Normalmente, ¿puedo pasar un parámetro como este? – user420574

Respuesta

2

En primer lugar su URI parece estar mal.

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

Y si la prueba de emulador de servidor web y se utiliza tanto en la misma máquina, utiliza la dirección IP del servidor en lugar de algo así como localhost o 127.0.0.1

Ejemplo:

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

Editar: La respuesta a este OP es la siguiente:

Parece que en el ejemplo de tornadoweb.org/documentation puede establecer un valor predeterminado. Entonces puedes probar algo como gender = self.get_argument("gender",None). Entonces, género debe establecerse en None si no pasa ningún parámetro gender en la cadena de consulta

+0

Por supuesto, pasé mi URL de esta manera: httpGet.setURI (URI nuevo (192.168.0.1:8888/user? "Nickname" = "John") – user420574

+0

En mi opinión, no puedo pasar un parámetro con una URL Preguntar si pueden preguntar: – user420574

+1

Sí, puede, por el lado del servidor, ser un error al evaluar el 2. ° parámetro. Acabo de volver a leer su OP y puede agregar nuevos parámetros a la URL con '& 'like' httpGet.setURI (URI nuevo (url + "/ user? nickname = John & gender = M") ' – ccheneson

Cuestiones relacionadas