[Python] Solicitud mediante método POST

Iniciado por MA40, 12 Junio 2017, 23:01 PM

0 Miembros y 1 Visitante están viendo este tema.

engel lex

Content-type: text/html


(200, u'{"status":403,"message":"Invalid API key."}')


cambia tu print "hola mundo", si funciona es algo del codigo, si no, es el server
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

MA40

Hola.

Sí, si otros scripts sí me funcionan correctamente, es éste el que no me funciona.

Creo que mañana hablaré con los administradores de mi hosting.

Gracias y un saludo.
¿Qué sucedería si se enfrentara una fuerza imparable contra un muro inamovible?
Visita Ediciones MA40 - Libros clásicos de ajedrez y este blog de ajedrez
ChessFaucet.com - Gana bitcoins jugando al ajedrez contra el ordenador

MA40

Hola.

Ya sé cuál es el problema. Mi proveedor de hosting sólo tiene instalados los módulos estándares de Python, y el módulo requests no es estándar.

¿Hay alguna forma de hacer lo mismo con módulos estándares?

Un saludo.
¿Qué sucedería si se enfrentara una fuerza imparable contra un muro inamovible?
Visita Ediciones MA40 - Libros clásicos de ajedrez y este blog de ajedrez
ChessFaucet.com - Gana bitcoins jugando al ajedrez contra el ordenador

engel lex

urlib2 es un modulo standard según creo... (tendrías que mostrar la lista)

este ejemplo es sacado de stackoverflow
https://stackoverflow.com/questions/6348499/making-a-post-call-instead-of-get-using-urllib2

Código (python) [Seleccionar]
url = 'http://myserver/post_service'
data = urllib.urlencode({'name' : 'joe', 'age'  : '10'})
req = urllib2.Request(url, data)
response = urllib2.urlopen(req)
print response.read()

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

MA40

#14
Gracias engel lex.

Creo que ya andamos cerca, pero no termino de conseguirlo.

Me pasa una cosa curiosa, y es lo siguiente:

El siguiente script, parece que sí funciona:

Código (python) [Seleccionar]
#!/usr/bin/python
# -*- coding: utf-8 -*-

print "Content-type: text/html\n\n"
import urllib2

req = urllib2.Request("https://faucethub.io/api/v1/balance", data={'api_key': 'xxxxxxxxxxxxxxxxxxxx'})
print """Hola mundo."""


Pero, este otro, en el cual sólo se ha añadido una línea más (la 8), ya no funciona:

Código (python) [Seleccionar]
#!/usr/bin/python
# -*- coding: utf-8 -*-

print "Content-type: text/html\n\n"
import urllib2

req = urllib2.Request("https://faucethub.io/api/v1/balance", data={'api_key': 'xxxxxxxxxxxxxxxxxxxx'})
response = urllib2.urlopen(req)
print """Hola mundo."""


¿A qué puede deberse?

Un saludo.
¿Qué sucedería si se enfrentara una fuerza imparable contra un muro inamovible?
Visita Ediciones MA40 - Libros clásicos de ajedrez y este blog de ajedrez
ChessFaucet.com - Gana bitcoins jugando al ajedrez contra el ordenador

engel lex

puede que tu proveedor está bloqueando las llamadas desde python, que copnfiguración tiene el servidor para python?

en esto es mejor un vps que un hosting porque te da control total de tu sistema
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.