2010-07-14 94 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