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 に答える