2010-07-14 26 views
12

He colgado al servidor usando Hudson rizo desde la línea de comandos utilizando el following--equivalente Python de Curl HTTP POST

curl -X POST -d '<run><log encoding="hexBinary">4142430A</log><result>0</result><duration>2000</duration></run>' \ 
http://user:[email protected]/hudson/job/_jobName_/postBuildResult 

como se muestra en el Hudson documentation..can emulo lo mismo usando pitón. .i no quiero usar pyCurl o enviar esta línea a través de os.system() .. ¿hay alguna salida usando python en bruto?

+0

pregunta similar aquí: http://stackoverflow.com/questions/1990976/convert-a-curl-post-request-to-python- only-using-standard-libary – Jordan

Respuesta

18
import urllib2 

req = urllib2.Request(url, data) 
response = urllib2.urlopen(req) 
result = response.read() 

donde los datos son los datos codificados que desea PUBLICAR.

Puede codificar un diccionario utilizando urllib así:

import urllib 

values = { 'foo': 'bar' } 
data = urllib.urlencode(values) 
+0

¡Dulce y simple, gracias! Sin embargo, para codificar datos, tuve que usar 'urllib.urlencode' como' encode' no se encontró. –