Estoy tratando de crear una super-simplista Virtual In/Out Board usando wx/Python. Tengo el siguiente código en su sitio para una de mis peticiones al servidor donde voy a almacenar los datos:Python URLLib/URLLib2 POST
data = urllib.urlencode({'q': 'Status'})
u = urllib2.urlopen('http://myserver/inout-tracker', data)
for line in u.readlines():
print line
Nada va especial 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 para esa url:
if (!isset($_POST['q'])) { die ('No action specified'); }
echo $_POST['q'];
Y cada vez que paso la aplicación Python consigo el 'Ninguna acción especificada' texto impreso a 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 de trabajo y mensajes a 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 estoy seguro de por qué la biblioteca urllib2 no POST cuando proporciono el parámetro de datos - para mí los documentos indican que debería.
¿Por qué no usas 'urllib2'? –
Yo soy. 'urllib2.urlopen'. Solo estoy usando urllib para codificar los datos de la publicación. –