[Python-es] problema con urllib2 y el metodo POST

Jose Caballero jcaballero.hep en gmail.com
Vie Mayo 24 14:27:25 CEST 2013


Al final resolví el problema. Yo mismo respondí a mi propio email.

En cualquier caso no me hubiese valido (de mi propio mensaje: "usando las herramientas estandar que vienen con python 2.4") pero muchas gracias de todas formas



On May 24, 2013, at 5:02, Alberto Curro <bertothunder en gmail.com> wrote:

> 
> Puedes probar la magnifica libreria requests, creo que esta disponible para python 2.4 y superiores. Te hace todo el "trabajo sucio" y te centras en los requests en si :)
> 
>  http://docs.python-requests.org/en/latest/
> 
> De todos modos, tienes en el propio stackoverflow ejemplos de urllib y post en python??
> 
>  http://stackoverflow.com/questions/2370003/how-do-i-use-pythons-httplib-to-send-a-post-to-a-url-with-a-dictionary-of-para
> 
>  E incluso en python beginners tienes un magnifico tutorial de python y urllib:
> 
>  http://www.pythonforbeginners.com/python-on-the-web/how-to-use-urllib2-in-python/
> 
>  Espero que te sea útil.
> 
>  Saludos
> 
> 
> 
> 
> El 25 de abril de 2013 21:15, Jose Caballero <jcaballero.hep en gmail.com> escribió:
> El día 25 de abril de 2013 15:53, Jose Caballero
> <jcaballero.hep en gmail.com> escribió:
> > Hola,
> >
> >
> >
> > necesito comunicar con un web server, usando cualquiera de los cuatro
> > metodos HTTP:
> >
> >  GET
> >  PUT
> >  POST
> >  DELETE
> >
> > usando las herramientas estandar que vienen con python 2.4
> >
> > Para poder escoger el metodo que necesito en cada momento, y siguiendo
> > una receta que encontre en stackoverflow, he creado una clase
> > alreadedor de Request [*]
> >
> > No parece tener problemas con GET y PUT.
> > No lo he probado con DELETE.
> > Me falla con POST. Obtengo un error
> >
> >            HTTP Error 400: BAD REQUEST
> >
> > Me preguntaba si alguien conoce un forma alternativa para hacer
> > llamadas HTTP en python 2.4
> > que funcione con al menos GET, PUT y POST.
> > Cualquier comentario sera mas que bienvenido.
> >
> >
> >
> > Saludos cordiales,
> > Jose
> >
> >
> >
> > [*]
> >
> > class RequestWithMethod(urllib2.Request):
> >
> >     def __init__(self, method, *args, **kwargs):
> >         self._method = method
> >         urllib2.Request.__init__(self, *args, **kwargs)
> >
> >     def get_method(self):
> >         return self._method
> >
> >
> > opener = urllib2.build_opener(urllib2.BaseHandler)
> > request = RequestWithMethod(method, url, data)
> > opener.open(request)
> 
> 
> Parece que hago ciertos progresos.
> Para PUT y GET, al parecer, codificar la informacion de input
> almacenada en data en formato JSON parece ser suficiente.
> Pero para POST, aparentemente, tengo que pasarla antes por urlencode()
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
> 
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20130524/ce2de410/attachment.html>


Más información sobre la lista de distribución Python-es