我有以下代码,它应该执行在 github 上创建新下载的第一部分。它应该使用 POST 发送 json 数据。
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)
如果我, jsonstring
从 中删除urlopen()
,它不会失败,并为我提供可用下载列表。但是,如果我尝试发布 json 字符串,则会收到 404 错误。
问题必须与json有关,或者在我发送它的方式上,但我无法弄清楚问题是什么。的字符串在<...>
实际代码中是正确的,我只是从帖子中删除了它们
我在命令行上尝试了大致相同curl
的方法,但身份验证方法略有不同,并且成功了。
测试:
作品(返回想要的json):
curl -u "user:password" --data "json..." https://api.github.com/repos/<user>/<repo>/downloads
作品:
curl -H 'Authorization: token <token>' https://api.github.com/
不起作用(返回“无效凭据”):
curl -H 'Authorization: token <invalid_token>' https://api.github.com/
不起作用(“未找到”):
curl -H 'Authorization: token <valid_token>' --data "json..." https://api.github.com/repos/<user>/<repo>/downloads
这似乎不是特定于 python 代码的问题。json POST 数据似乎很好,OAuth 令牌授权似乎(至少部分)有效。但是当这些放在一起时,它就停止工作了。