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