2017-07-20 73 views
0

似乎在别处回答,但使用相同的命令,其他的答案我仍然获得了404GitHub的API创建文件返回404

我试图测试创建与GitHub的V3 API的文件。无论我使用卷曲还是其他api测试仪,我都会遇到404“找不到”的错误。我相信自己得到了适当的授权,因为我可以检查我的费率计数,并且它从5,000(当您获得授权时获得的费率限制)倒计时。

我可以做一个GET像这样:

curl -X GET -H "Authorization: token <mytoken>" https://api.github.com/repos/<myorg>/<myrepo>/contents/testfile 

我说就是像这样:

curl -X PUT -H "Authorization: token <mytoken>" https://api.github.com/repos/<myorg>/<myrepo>/contents/newfile -d "{'message': 'Initial Commit','content': 'bXkgbmV3IGZpbGUgY29udGVudHM='}" 

我也试过这样:

curl -X PUT -H "Authorization: token <mytoken>" https://api.github.com/repos/<myorg>/<myrepo>/contents/test.txt -d "{'path': 'test.txt', 'branch': 'dev', 'message': 'Initial Commit', 'committer': {'name': '<myname>', 'email': '<myemail>'}, 'content': 'bXkgbmV3IGZpbGUgY29udGVudHM='}" 

因此,要回顾一下, GET似乎工作。 PUT好像是不是工作。如果任何人都可以帮忙请做。如果我没有得到答案,请告诉我的故事。

+0

你的有效负载是无效的JSON,并试图使用它给了我一个400错误,而不是404。这实际上是你试图“放”吗? – jwodder

+0

什么是无效的呢?我把json拖入Visual Studio,看起来很好。我会说从技术上来说,单引号应该是双引号,但是当在窗口上使用curl工作时,我总是必须将任何内部引号放在单个引号中。要回答,是的,这正是我使用的原因(虽然显然用实际值代替了任何<>),并且我每次都得到404。另外,值得重申的是,我使用ARC等REST测试器得到了相同的结果。 – Chuck

+0

这是无效的,因为单引号*必须是双引号,以便有效负载实际上是JSON。当我修复该部分时,curl命令适用于我。如果甚至无效的JSON给你一个404,那么我唯一的猜测是'https://api.github.com/repos/ //contents'实际上并不存在,要么是因为repo不存在或者只是因为你拼错了某些东西。 – jwodder

回答

0

原来,我只是一个白痴。我正在使用对我的回购进行只读访问的用户的个人访问令牌(PAT)。使用具有写入权限的人的PAT工作得很好。谁知道?

对不起,互联网。我再也不会怀疑你了。