2010-07-14 3 views
12

Я отправляю на сервер Hudson с помощью завиток из командной строки с помощью following--Python эквивалент Curl 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 я эмулировать то же самое с помощью питона. .i не хочу использовать pyCurl или отправлять эту строку через os.system() .. есть ли какой-либо выход с использованием raw python?

+0

Похожий вопрос здесь: http://stackoverflow.com/questions/1990976/convert-a-curl-post-request-to-python- only-using-standard-libary – Jordan

ответ

18
import urllib2 

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

где данные - это зашифрованные данные, которые вы хотите использовать POST.

Вы можете кодировать Dict используя URLLIB так:

import urllib 

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

Сладкий и простой, спасибо! Однако для кодирования данных мне пришлось использовать 'urllib.urlencode', поскольку' encode' не был найден. –

Смежные вопросы