Sto cercando di colpire l'API Bitbucket per il mio account, e un tentativo riuscito assomiglia a:riccio vs Python "richieste" quando colpisce API
curl --user screename:mypassword
https://api.bitbucket.org/1.0/user/repositories
nella riga di comando. In Python, cerco:
import requests
s = requests.session()
url = 'https://api.bitbucket.org/1.0/user/repositories'
poi
r = requests.post(url, data={'username': myscreename, 'password':mypassword})
e
r = requests.post(url, data="myscreename:mypassword")
e
r = requests.post(url, data={"user": "myscreename:mypassword"})
tutti ottengono 405 errore. L'API è https://confluence.atlassian.com/display/BITBUCKET/Use+the+Bitbucket+REST+APIs
Mi chiedo:
Che cosa sto facendo di sbagliato nella versione richieste, sembrano tutti simili al mio tentativo ricciolo
Qual è la differenza tra la richiesta con l'arricciatura e python richiede il modulo? Quale modello generale posso riconoscere quando leggo una API con un esempio di arricciatura e poi la scrivo in python?
Grazie
RISPOSTA:
ha richiesto le intestazioni giusti
https://answers.atlassian.com/questions/18451025/answers/18451117?flashId=-982194107
UPDATE:
# ===============
# 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)
'--user' a ricciolo usa HTTP auth intestazioni. La tua soluzione 'data = {" username "...' li include come dati post. I due non sono la stessa cosa, ed è improbabile che Bitbucket cerchi quelli nei dati del post. –