2017-07-20 93 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工作得很好。誰知道?

對不起,互聯網。我再也不會懷疑你了。