1

这是我当前使用 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,
    )
4

1 回答 1

0

我终于发现 2-legged oauth2 POST/PUT 构建了自己的标头;我不必填充它们,除了 Content-Type (在我的情况下)。有关如何执行 2-legged GET 和 2-legged POST/PUT 的完整详细信息,请参阅此处提供的答案:How do I send a POST using 2-legged oauth2 in python? .

于 2012-10-31T20:49:25.563 回答