我正在尝试使用Github的API创建一个版本。
我的请求在Postman中工作得很好,但无论我尝试什么,它总是在curl中失败,包括如果我只是使用Postman将我的Postman请求转换为curl。
这是我的邮递员POST请求的正文:
{
"tag_name": "4.2.0",
"target_commitish": "master",
"name": "4.2.0",
"body": "test"
}我已经包含了一个"Basic“类型的授权头,我在其中输入了我的用户名和我为此创建的令牌。
我正在对https://api.github.com/repos/<myUsername>/<myRepo>/releases执行请求。
正如我所说的-它工作得很好,但当我将它转换成curl时,我得到了错误“解析JSON的问题”。
翻译后的curl命令为:
curl --location --request POST 'https://api.github.com/repos/<myUsername>/<myRepo>/releases' \
--header 'Authorization: Basic <someHashOrSomething>' \
--header 'Content-Type: application/json' \
--data-raw '{
"tag_name": "4.2.0",
"target_commitish": "master",
"name": "4.2.0",
"body": "test"
}'我将其重新格式化为curl --location --request POST 'https://api.github.com/repos/<myUsername>/<myRepo>/releases' --header 'Authorization: Basic <someHashOrSomething>' --header 'Content-Type: application/json' --data-raw '{ "tag_name": "4.2.0", "target_commitish": "master", "name": "4.2.0", "body": "test"}',使其在一行上。
我也尝试过(因为只需要"tag_name“参数):
curl -i -H 'Authorization: token <myToken>' -d '{"tag_name":"4.2.0"}' https://api.github.com/repos/<myUsername>/<myRepo>/releases
curl -i -H 'Authorization: token <myToken>' -d '{"tag_name":"4.2.0"}' https://api.github.com/repos/<myUsername>/<myRepo>/releases --header Content-Type:application/json
curl -d '{"tag_name":"4.2.0"}' -u <myUsername>:<myToken> https://api.github.com/repos/<myUsername>/<myRepo>/releases --header "Content-Type:application/json"
curl -d "tag_name=4.2.0" -u <myUsername>:<myToken> https://api.github.com/repos/<myUsername>/<myRepo>/releases --header "Content-Type:application/json"
每个curl请求都会失败,并出现"Problems parsing JSON“错误。
发布于 2020-07-02 16:26:34
如果从windows cmd提示符执行此操作,则需要更改
--data-raw '{ "tag_name": "4.2.0", "target_commitish": "master", "name": "4.2.0", "body": "test"}'至
--data-raw "{ \"tag_name\": \"4.2.0\", \"target_commitish\": \"master\", \"name\": \"4.2.0\", \"body\": \"test\"}"cmd提示符似乎不像数据的单引号。
发布于 2020-04-12 00:36:34
问题可能出在API密钥上。
检查它是否有足够的权限,或者尝试创建一个新的权限。
发布于 2022-02-16 15:32:05
如何调试:
-ascii -“添加到curl命令以查看命令的日志。
中对数据使用echo或write-host
请记住,确保curl接收有效的JSON数据非常重要。
查看Powershell here的示例
https://stackoverflow.com/questions/61009023
复制相似问题