example español python post urllib2 urllib

español - Python URLLib/URLLib2 POST



urllib.urlopen python 3 (1)

u = urllib2.urlopen(''http://myserver/inout-tracker'', data) h.request(''POST'', ''/inout-tracker/index.php'', data, headers)

El uso de la ruta de acceso /inout-tracker sin un seguimiento / no busca index.php . En cambio, el servidor emitirá un redireccionamiento 302 a la versión con el final / .

Hacer un 302 típicamente hará que los clientes conviertan un POST a una solicitud GET.

Intento crear una tabla de entrada / salida virtual súper simplista usando wx / Python. Tengo el siguiente código para una de mis solicitudes al servidor donde almacenaré los datos:

data = urllib.urlencode({''q'': ''Status''}) u = urllib2.urlopen(''http://myserver/inout-tracker'', data) for line in u.readlines(): print line

Nada especial sucediendo allí. El problema que tengo es que, en función de cómo leo los documentos, esto debe realizar una solicitud de publicación porque he proporcionado el parámetro de datos y eso no está sucediendo. Tengo este código en el índice de esa url:

if (!isset($_POST[''q''])) { die (''No action specified''); } echo $_POST[''q''];

Y cada vez que ejecuto mi aplicación Python obtengo el texto ''No se especificó ninguna acción'' impreso en mi consola. Voy a tratar de implementarlo usando Request Objects, ya que he visto algunas demos que incluyen esas, pero me pregunto si alguien puede ayudarme a explicar por qué no obtengo una Post Request con este código. ¡Gracias!

- EDITADO -

Este código funciona correctamente y las publicaciones en mi página web correctamente:

data = urllib.urlencode({''q'': ''Status''}) h = httplib.HTTPConnection(''myserver:8080'') headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain"} h.request(''POST'', ''/inout-tracker/index.php'', data, headers) r = h.getresponse() print r.read()

Todavía no estoy seguro de por qué la biblioteca urllib2 no se publica cuando proporciono el parámetro de datos; para mí, los documentos indican que debería.