Foros del Web » Programando para Internet » Python »

Problema con POST y httplib2

Estas en el tema de Problema con POST y httplib2 en el foro de Python en Foros del Web. Buenas: les cuento, programe lo siguiente en php usando curl Código: $ch = curl_init(http://pagina.web/Result.cfm); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, array("registro"=>"354")); curl_setopt($ch, CURLOPT_USERAGENT, ...
  #1 (permalink)  
Antiguo 09/08/2011, 23:56
 
Fecha de Ingreso: marzo-2009
Mensajes: 41
Antigüedad: 15 años, 8 meses
Puntos: 1
Problema con POST y httplib2

Buenas:

les cuento, programe lo siguiente en php usando curl

Código:
$ch = curl_init(http://pagina.web/Result.cfm);

curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);

curl_setopt($ch, CURLOPT_POST, 1);

curl_setopt($ch, CURLOPT_POSTFIELDS, array("registro"=>"354"));

curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.107 Safari/535.1");

curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$output = curl_exec($ch);
curl_close($ch);
Y bueno el $output lo trabajo con expresiones regulares y etc...

El problema que tengo es que necesito hacer lo mismo pero en Python 3, por lo cual tengo entendido que debo usar httplib2, pues bueno intente hacerlo de la siguiente manera

Código:
import httplib2
from urllib.parse import urlencode
h = httplib2.Http(".cache")
data=dict(registro="354")
resp, content = h.request("http://pagina.web/Result.cfm","POST",urlencode(data))
f = open("salida.txt","wb")
f.write(content)
f.close
Pero desde Result.cfm me informa que no han sido enviado el contenido de POST, osea que no recepciona el valor de registro=354.

Bueno pensé que seria por que existiría quizás algún filtro y estuve buscando como cambiar el user-agent y las demás variables que en curl se describen pero no supe como hacerlo en Python-httplib2.

Me pueden ayudar??, algo estaré haciendo mal??
  #2 (permalink)  
Antiguo 10/08/2011, 10:14
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: Problema con POST y httplib2

Código Python:
Ver original
  1. import urllib
  2.  
  3. data = {"registro":"354"}
  4. parms = urllib.urlencode(data)
  5. url = "http://pagina.web/Result.cfm"
  6.  
  7. request = urllib.urlopen(url, parms)
  8. response = request.read()
  9. request.close()
  10.  
  11. f = open("salida.txt", "wb")
  12. f.write(response)
  13. f.close()
La verdad es que no utilizo urllib2, pero mas o menos así se hace un post request.
  #3 (permalink)  
Antiguo 11/08/2011, 01:35
 
Fecha de Ingreso: marzo-2009
Mensajes: 41
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Problema con POST y httplib2

muchas gracias pero en phyton3 me salia un error ya que necesitaba los datos del post en binarios y lo solucione agregando esta linea

parms = urllib.urlencode(data).encode('utf8')

Etiquetas: httplib2, post
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:56.