🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.os.linux.programacion
Article #16777

Ayuda del algun guru del Python ese o me paso al Perl :)

#16777
From: *puntero_loko
Date: Tue, 21 Mar 2000 00:00
92 lines
4235 bytes
Buenas, para estrenarme con el python he decidido hacer un programa para
enviar mensajes  a m�viles a trav�s  de la p�gina de  terra. Lo primero,
abr� la p�gina con el navegador,  desconect�, rellen� el formulario y el
wwwoffle amablemente me escupi� esto:

-------------------------------------------------------------------------
POST http://www.terra.es/sms/envio.cfm HTTP/1.0
Referer: http://www.terra.es/sms/
Connection: close
User-Agent: Mozilla/4.7 [en] (X11; I; Linux 2.2.15pre13 i586; Nav)
Host: www.terra.es
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, image/png, */*
Accept-Encoding: gzip
Accept-Language: en
Accept-Charset: iso-8859-1,*,utf-8
Content-type: application/x-www-form-urlencoded
Content-length: 109
Proxy-Connection: close

telefono=999999999&fecha=%7Bts+%272000-03-21+16%3A45%3A26%27%7D&mensaje=Prueba+de+mensaje+para+terra
-------------------------------------------------------------------------

La cadena una vez urldecodificada viene a decir:

telefono=9999999&fecha={ts '2000-03-21 16:45:27'}&mensaje=Prueba de mensaje
para terra


As� que escrib� esto en python:

--------------------------------------------------------------------------

#!/usr/bin/env python

import os
import time
import urllib

d_fecha = {}
d_mensaje = {}
d_telefono = {}

# No puedo meter  directamente los tres campos en  un diccionario porque
# entonces  me los  saca en  el orden  que  le da  la gana  al hacer  el
# urllib.urlencode  que _no_  es  el  mismo que  el  orden  que crea  el
# formulario de la  p�gina de terra, no se si  el orden importar� mucho,
# pero por  si acaso lo hago  igual. De este  modo lo que hago  es tener
# tres  diccionarios  (urllib.urlencode  necesita  un  diccionario  como
# par�metro), que codifico y luego concateno en la cadena 'cadenalfinal'

d_fecha['fecha']=time.strftime("{ts '%Y-%m-%d %H:%M:%S'}",time.gmtime(time.time()))

# El mensaje debe ser igual o menor que 120 caracteres.

d_mensaje['mensaje'] = 'mensaje experimental'

# en la versi�n real del programa aqui puse un tel�fono de movil v�lido. Debe
# tener 9 caracteres.

d_telefono['telefono'] = '123456789'

cadenafinal = urllib.urlencode(d_telefono)
cadenafinal = cadenafinal + '&' + urllib.urlencode(d_fecha)
cadenafinal = cadenafinal + '&' + urllib.urlencode(d_mensaje)

url_terra=urllib.urlopen('http://www.terra.es/sms/envio.cfm', cadenafinal)

pagina_respuesta = url_terra.read()
print pagina_respuesta
---------------------------------------------------------------------------

Se  supone que  urllib.urlopen  con dos  par�metros hace  un  POST a  la
direcci�n indicada  pasando como mensaje  del POST el  segundo par�metro
(que tiene como puede verse el mismo formato que los datos que genera el
formulario de la p�gina).

Pues   bien,    no   rula.   Se    conecta   a   la    p�gina   indicada
pero   ni  post   ni   leches,   me  escupe   la   p�gina  por   defecto
http://www.terra.es/sms/portada.cfm  como si  hubiera hecho  un GET,  en
lugar de darme una de las p�ginas de  respuesta (si ha ido bien o mal el
envio del  mensaje) como sucederia  si hubiera seguido  el procedimiento
normal con el navegador. Y por supuesto el mensaje no lo env�a.

A  ver si  me podeis  ayudar (soy  novato total  en python  y adem�s  el
protocolo HTTP  no me lo conozco  casi nada, a  ver si me miro  el RFC).
Debe ser alguna tonter�a.

-- 
P�gina personal: http://personal1.iddeo.es/ferkys
----------------
Para obtener mi clave PGP env�ame un correo con el subject "send key pub"
----------------
Technical Details
Message-ID: <slrn8dfrg7.79g.jajs@Pascual.es>
Path: arc1-ca.pugleaf.net!unknown!not-for-mail

Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII
X-Google-Thread: f86c8,fcc95392be363063,start
X-Google-Attributes: gidf86c8,public
From: jajs@NOSPAMretemail.es (*puntero_loko)
Subject: Ayuda del algun guru del Python ese o me paso al Perl :)
Date: 2000/03/21
Message-ID: <slrn8dfrg7.79g.jajs@Pascual.es>
X-Deja-AN: 600583209
Content-Transfer-Encoding: 8bit
Organization: Iddeo - Retevisi�n
Content-Type: text/plain; charset=iso-8859-1
User-Agent: slrn/0.9.6.2 (Linux)
Mime-Version: 1.0
Reply-To: jajs@NOSPAMretemail.es
Newsgroups: es.comp.os.linux.programacion