У кого-нибудь есть простой пример отправки XML-запроса POST в RESTful API с помощью Python? Я пытаюсь использовать библиотеку Python urllib2 для «создания нового проекта» в Harvest API, но безуспешно. Переменная полезной нагрузки — это допустимый XML-документ, который является почти копией/вставкой их документации (под заголовком «Создать новый проект»), показанной здесь:
http://www.getharvest.com/api/projects
Вот код, который я пытаюсь выполнить.
def postRequest():
""" Makes POST request to url, and returns a response. """
url = 'http://subdomain.harvestapp.com/projects'
opener = urllib2.build_opener()
opener.addheaders = [('Accept', 'application/xml'),
('Content-Type', 'application/xml'),
('Authorization', 'Basic %s' % base64.encodestring('%s:%s' % (self.username, self.password))[:-1]),
('User-Agent', 'Python-urllib/2.6')]
req = urllib2.Request(url=url, data=payload)
assert req.get_method() == 'POST'
response = self.opener.open(req)
print response.code
return response
Я получаю код ответа 200 (Статус ОК) вместо кода ответа 201 (Создано)... это вопрос к ребятам из службы поддержки урожая?
Любые подсказки, которые есть у кого-либо, будут очень признательны.
Спасибо, Джефф.