我在python oauth2 POST标题中添加了什么?

时间:2012-10-25 15:45:12

标签: python header request oauth-2.0

这是我目前使用oauth2在python中进行POST的代码。对于我的生活,我无法克服401错误,我认为它可能与我的标题有关。我只是在打印时粘贴我的标题,因为我使用了另一个例程来生成myheaders = req.to_header()。这应该会告诉你那里真正的东西。什么看起来不对?请帮忙!

def post_or_put_me(myaction,myxml,myurl):
    CONSUMER_KEY = 'my_admin_access'
    CONSUMER_SECRET = 'xxxxxxxx'
    consumer = oauth2.Consumer(key=CONSUMER_KEY, secret=CONSUMER_SECRET)
    token = oauth2.Token(key=CONSUMER_KEY, secret=CONSUMER_SECRET)
    client = oauth2.Client(consumer, token)
    myheaders = {'Authorization': 'OAuth realm="",oauth_body_hash="xxxxxxxx",oauth_nonce="84691521", oauth_timestamp="1351179163",oauth_consumer_key="my_admin_access",oauth_signature_method="HMAC-SHA1", oauth_version="1.0", oauth_signature="xxxxxxxxxx"'}
    xml_string = ElementTree.tostring(myxml)
    data = urllib.urlencode({'xml': xml_string})

    resp, content = client.request(
        myurl,
        method=myaction,
        body=data,
        headers = myheaders,
    )

1 个答案:

答案 0 :(得分:0)

我终于发现,2脚oauth2 POST / PUT构建了自己的标头;除了Content-Type(在我的例子中)之外,我不必填充它们。请参阅此处提供的答案,以获取有关如何同时执行两条腿GET和两条腿POST / PUT的完整详细信息:How do I send a POST using 2-legged oauth2 in python?