Warum Träger nicht in requests authorization-header?
Ich habe ein problem beim senden ein Autorisierungs-token mit Inhaber zum NEST-API über python-requests:
curl https://developer-api.nest.com -H "Authorization: Bearer c.123"
-H "Content-Type: application/json"
funktioniert einwandfrei, jedoch:
nest_url = "https://developer-api.nest.com"
headers = {'Authorization': str('Bearer ' + token), 'Content-type': 'application/json'}
print(headers)
nest_data_req = requests.get(nest_url, headers=headers)
ausgegeben als:
{'Content-type': 'application/json', 'Genehmigung': 'Träger c.123'}
schlägt mit einem 401 unauthorized, so weit ich erzählen kann, sind Sie bemüht, den gleichen Wunsch, also warum nicht Rollen Arbeit (und Briefträger, für diese Angelegenheit) und python Anforderungen scheitern?
Folgende Bild zeigt die gleiche Arbeit in postman:
Update:
Also dieser code funktioniert bei 1 von 10 mal (die anderen 9+ geben mir 401 unauthorized):
url = "https://developer-api.nest.com/"
auth_t = token.encode("ascii", "ignore")
headers = {
'authorization': "Bearer " + auth_t,
'content-type': "application/json",
'cache-control': "no-cache",
}
response = requests.request("GET", url, headers=headers)
print(response.text)
wenn ich drücken Sie senden im Postbote es funktioniert jedes mal ohne scheitern.
c. 12e
scheint nicht zu sein, den richtigen token. In der Regel enthalten Sie keine Leerzeichen.- entfernt der Raum, in dem es nicht in der Zeichenfolge - ist nicht echt-token.
- Hat die python-version arbeiten wenn Sie
'Authorization': 'Bearer c.123'
anstelle von aufrufen derstr
Funktion? - Nein ist es nicht ich bekomme nur die gleichen 401 unauthorized. Getestet mit Postboten, wie gut die funktioniert.
- entfernen Kommentar und das hinzufügen zu Körper in Frage
Du musst angemeldet sein, um einen Kommentar abzugeben.
Stellt dies eine Folge von nest-API umgeleitet, so könnten Sie diese entweder ein Fehler - Header entfernt von der umgeleiteten Anforderung und-Header sollte auf der Sitzung. Oder ein 'feature' als Sie versuchten zu beheben CVE.
So, hier ist ein Prototyp Weg, dies zu behandeln: