Github-api daje 404 podczas przekazywania danych json z python + urllib2

Mam następujący kod, który powinien wykonać pierwszą część tworzenia nowego pobrania w github. Powinien wysłać dane json za pomocą POST.

<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>

Jeśli usunę, jsonstring zurlopen(), nie zawodzi i daje mi listę dostępnych plików do pobrania. Jeśli jednak spróbuję POST ciągu json, otrzymuję błąd 404.

Problemem musi być json lub sposób, w jaki go wysyłam, ale nie wiem, na czym polega problem. Struny w<...> znajdują się dokładnie w rzeczywistym kodzie, właśnie usunąłem je z posta

Próbowałem mniej więcej tak samocurl w linii poleceń, z nieco inną metodą uwierzytelniania i działało.

Przetestowany:

Działa (zwraca poszukiwany json):

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

Prace:

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

Nie działa (zwraca „nieprawidłowe poświadczenia”):

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

Nie działa („nie znaleziono”):

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

Wydaje się, że nie jest to problem specyficzny dla kodu Pythona. Dane json POST wydają się być w porządku, a autoryzacja tokenu OAuth wydaje się (przynajmniej częściowo) działać. Ale kiedy są one połączone, przestaje działać.

questionAnswers(4)

yourAnswerToTheQuestion