2010-07-14 36 views
12

Tôi gửi bài đến máy chủ Hudson sử dụng curl từ dòng lệnh bằng cách sử dụng following--Python tương đương với Curl HTTP bài

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 

như trong hudson documentation..can Tôi bắt chước những điều tương tự sử dụng python. .i không muốn sử dụng pyCurl hoặc gửi dòng này thông qua os.system() .. là có cách ny ra bằng cách sử dụng python nguyên ??

+0

câu hỏi tương tự ở đây: http://stackoverflow.com/questions/1990976/convert-a-curl-post-request-to-python- chỉ sử dụng-tiêu chuẩn-libary – Jordan

Trả lời

18
import urllib2 

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

nơi dữ liệu là dữ liệu được mã hóa bạn muốn POST.

Bạn có thể mã hóa một dict sử dụng urllib như thế này:

import urllib 

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

Ngọt ngào và đơn giản, cảm ơn bạn! Tuy nhiên, để mã hóa dữ liệu tôi đã sử dụng 'urllib.urlencode' như' encode' không tìm thấy. –

Các vấn đề liên quan