繁体   English   中英

使用Python的XML POST REST请求

[英]XML POST REST Request using Python

有没有人有一个简单的例子,用Python向RESTful API发送XML POST请求? 我试图使用urllib2 Python库在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(已创建)...这对于Harvest支持人员来说是一个问题吗?

任何人都有的提示将不胜感激。

谢谢,杰夫。

即使201响应严格地更合适,通常也会返回200响应。 即使您收到“正确”的回复,您确定请求未得到正确处理吗?

除了在你创建响应的行上,你使用的是本地开启者,你在那里使用self.opener ,这看起来像是问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM