2010-07-14 5 views
12

Ich bin Entsendung zu Hudson Server curl von der Kommandozeile mit dem following--Python äquivalent Locken 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 

wie in der hudson gezeigt mit documentation..can ich die gleiche Sache mit Python emulieren. .Ich möchte nicht pyCurl verwenden oder diese Zeile durch os.system() senden .. ist es kein Ausweg mit rohen Python ??

+0

ähnliche Frage hier: http://stackoverflow.com/questions/1990976/convert-a-curl-post-request-to-python- Nur-mit-Standard-Bibliothek – Jordan

Antwort

18
import urllib2 

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

wo Daten die codierten Daten sind, die Sie POST senden möchten.

Sie können ein dict kodieren wie dies mit urllib:

import urllib 

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

Süß und einfach, danke! Um Daten zu verschlüsseln, musste ich 'urllib.urlencode' verwenden, da' encode' nicht gefunden wurde. –