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

Alberto Curro bertothunder en gmail.com
Vie Mayo 24 11:02:21 CEST 2013


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/
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20130524/c6c6d86a/attachment.html>


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