enviar fichero por post
Ernesto Revilla
erny en sicem.biz
Lun Jun 21 14:45:42 CEST 2004
Acabo de redactar una receta[1] con código sacado de algún proyecto,
pero me parece mucho más interesante que uses ClientForm[2], un paquete
muy completo y mucho más fácil de usar.
En mi receta, mira lo que devuelve HTTPopen que devuelve una tupla con
los resultados de la solicitud: (response.status, response.reason, data,
responseheaders)
[1] http://www.sicem.biz/personal/erny/python/recetaMandarPostAPaginaWeb
[2] http://wwwsearch.sourceforge.net
Respecto a tu mensaje, creo que las cabeceras no están bien, deberían
ser algo como:
Content-type: multipart/form-data; boundary=boundary1
y la parte para mandar un archivo es algo como:
--boundary1
Content-Disposition: form-data; name=Nombrearchivo.xml
Content-Type: text/xml
Aquí viene el archivo....
.....
--boundary1--
Erny
Carlos Tabasco Guzmán escribió:
>Estoy intentado rehacer el codigo de una aplicación en PERL :
>
>
>
> my $ua = LWP::UserAgent->new;
> my $request = POST "$host_remoto/destino",
> Content_Type => 'form-data',
> Content => [ ACTION => $parametros{'ACCION'},
> OPTION => $parametros{'OPCION'},
> TIMESTAMP => $parametros{'TIMESTAMP'},
> AUTH => $parametros{'AUTH'},
> FILENAME => [$parametros{'ARCHIVO'}]];
>
>
> $var= [$parametros{'ARCHIVO'}];
> print $var;
> my $response = $ua->request($request);
> my $content = $response->content ();
>
>Simplemente se envia por post varios valores y se inlcuye un fichero en
>xml , en perl mediante el doble corchete se manda el archivo y no
>encuentro ninguna forma de hacerlo con python correctamente, el problema
>es que no funciona si meto el fichero en una variable y lo envio, estoy
>apunto de la desesperación no puedo avanzar en mi programa :P.
>Esto es mas o menos lo que he ido haciendo en PYTHON :
>
>parametros =
>urllib.urlencode({'ACTION':accion,'OPTION':opcion,'TIMESTAMP':tiempo,
> 'AUTH':clave,'FILENAME':{"filename": "alumno.xml"}})
>
> cabeceras={"Content-type":"form-data",
> "Accept":"text/plain",
> "Accept":"text/html"}
>
>
> print parametros
> conn = httplib.HTTPConnection(host)
> conn.request("POST", "destino",parametros, cabeceras)
>
> response = conn.getresponse()
>
>
>------------------------------------------------------------------------
>
>_______________________________________________
>Python-es mailing list
>Python-es en aditel.org
>http://listas.aditel.org/listinfo/python-es
>
>
Más información sobre la lista de distribución Python-es