Github-api gibt 404, wenn json-data mit python + urllib2 übergeben wird

Ich habe den folgenden Code, der den ersten Teil des Erstellens eines neuen Downloads bei Github durchführen sollte. Es sollte die json-Daten mit POST senden.

<code>jsonstring = '{"name": "test", "size": "4"}'
req = urllib2.Request("https://api.github.com/repos/<user>/<repo>/downloads")
req.add_header('Authorization', 'token ' + '<token>')
result = urllib2.urlopen(req, jsonstring)
</code>

Wenn ich das entferne, jsonstring von demurlopen(), es scheitert nicht und gibt mir die Liste der verfügbaren Downloads. Wenn ich jedoch versuche, den JSON-String zu veröffentlichen, erhalte ich den 404-Fehler.

Das Problem muss mit dem JSON sein, oder auf die Art, wie ich es sende, aber ich kann nicht herausfinden, was das Problem ist. Die Saiten bei<...> Sind im eigentlichen Code richtig, habe ich sie gerade aus dem Beitrag entfernt

Ich habe ungefähr das Gleiche mit versuchtcurl auf der Kommandozeile, mit etwas anderer Methode der Authentifizierung, und es hat funktioniert.

Geprüft:

Funktioniert (gibt den gewünschten JSON zurück):

<code>curl -u "user:password" --data "json..." https://api.github.com/repos/<user>/<repo>/downloads
</code>

Werke:

<code>curl -H 'Authorization: token <token>' https://api.github.com/
</code>

Funktioniert nicht (gibt "ungültige Anmeldeinformationen" zurück):

<code>curl -H 'Authorization: token <invalid_token>' https://api.github.com/
</code>

Funktioniert nicht ("nicht gefunden"):

<code>curl -H 'Authorization: token <valid_token>' --data "json..." https://api.github.com/repos/<user>/<repo>/downloads
</code>

Dies scheint kein spezifisches Problem für den Python-Code zu sein. Die json POST-Daten scheinen in Ordnung zu sein, und die OAuth-Token-Autorisierung scheint (zumindest teilweise) zu funktionieren. Aber wenn diese zusammengefügt werden, funktioniert es nicht mehr.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage