自分のアカウントで Bitbucket API をヒットしようとしていますが、成功した場合は次のようになります。
curl --user screename:mypassword
https://api.bitbucket.org/1.0/user/repositories
コマンドラインで。pythonでは、私は試します:
import requests
url = 'https://api.bitbucket.org/1.0/user/repositories'
それから
r = requests.post(url, data={'username': myscreename, 'password':mypassword})
と
r = requests.post(url, data="myscreename:mypassword")
と
r = requests.post(url, data={"user": "myscreename:mypassword"})
すべて 405 エラーが発生します。API はhttps://confluence.atlassian.com/bitbucket/rest-apis-222724129.htmlです。
私は疑問に思う:
リクエストバージョンで何が間違っているのですか。それらはすべて私のカール試行に似ています
curl と python requests モジュールでのリクエストの違いは何ですか? curl の例で API を読み取り、それを Python で記述したときに認識できる一般的なパターンは何ですか?
ありがとうございました
答え:
正しいヘッダーが必要でした
https://answers.atlassian.com/questions/18451025/answers/18451117?flashId=-982194107
アップデート:
# ===============
# get user
# ===============
import requests
import json
# [BITBUCKET-BASE-URL], i.e.: https://bitbucket.org/
url = '[BITBUCKET-BASE-URL]/api/1.0/user/'
headers = {'Content-Type': 'application/json'}
# get user
# [USERNAME], i.e.: myuser
# [PASSWORD], i.e.: itspassword
r = requests.get(url, auth=('[USERNAME]', '[PASSWORD]'), headers=headers)
print(r.status_code)
print(r.text)
#print(r.content)