2010-07-14 76 views
12

我使用curl命令行发布哈德森服务器使用following--的Python相当于卷曲HTTP发布

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 

如图所示哈德森documentation..can我模仿使用python同样的事情。 。我不想使用pyCurl或通过os.system()发送这条线..有没有使用原始Python的出路?

+0

类似的问题:http://stackoverflow.com/questions/1990976/convert-a-curl-post-request-to-python- only-using-standard-libary – Jordan 2010-07-14 14:01:46

回答

18
import urllib2 

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

其中数据是要发布的编码数据。

可以使用的urllib这样编码字典:

import urllib 

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

甜美而简单,谢谢!然而,为了编码数据,我不得不使用'urllib.urlencode'作为'encode'。 – 2011-12-16 16:21:10