Github-api dando 404 ao passar json-data com python + urllib2

Eu tenho o seguinte código, que deve executar a primeira parte da criação de um novo download no github. Deve enviar os dados do json com o 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>

Se eu remover o, jsonstring deurlopen(), não falha, e me fornece a lista de downloads disponíveis. No entanto, se eu tentar POSTAR o json-string, recebo o erro 404.

O problema tem que estar com o json, ou na maneira como eu o envio, mas não consigo descobrir qual é o problema. As cordas em<...> estão bem no código real, acabei de removê-los do post

Eu tentei aproximadamente o mesmo comcurl na linha de comando, com um método de autenticação ligeiramente diferente, e funcionou.

Testado:

Works (retorna o json desejado):

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

Trabalho:

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

Não funciona (retorna "credenciais inválidas"):

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

Não funciona ("não encontrado"):

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

Isso não parece ser um problema específico do código python. Os dados POST json parecem estar bem, e a autorização do token OAuth parece estar (pelo menos parcialmente) funcionando. Mas quando estes são colocados juntos, ele pára de funcionar.

questionAnswers(4)

yourAnswerToTheQuestion