Эквивалент Python сообщения HTTP Curl

140
22

Я отправляю на сервер Hudson с помощью curl из командной строки, используя следующее:


curl -X POST -d '<run><log encoding="hexBinary">4142430A</log><result>0</result><duration>2000</duration></run>' \
http://user:pass@myhost/hudson/job/_jobName_/postBuildResult

как показано в документации hudson. Я могу эмулировать одно и то же с помощью python..i не хочу использовать pyCurl или отправлять эту строку через os.system().. существует ли какой-либо выход с использованием raw python?

спросил(а) 2010-07-14T15:26:00+04:00 9 лет, 12 месяцев назад
1
Решение
167

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)

ответил(а) 2010-07-14T15:31:00+04:00 9 лет, 12 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема