Ошибка API Github «Проблемы с синтаксическим анализом JSON» при использовании curl, но работает нормально с почтальоном - PullRequest
0 голосов
/ 03 апреля 2020

Я пытаюсь создать релиз, используя API Github.

Мой запрос работает в Postman нормально, но независимо от того, что я пробовал, он всегда терпит неудачу с curl, в том числе если я просто перевожу свой запрос Postman в curl используя Почтальон.

Это тело моего POST-запроса Почтальона:

{
    "tag_name": "4.2.0",
    "target_commitish": "master",
    "name": "4.2.0",
    "body": "test"
}

Я включил заголовок авторизации типа "Basi c", где я ввожу свое имя пользователя и токен, который я создал для этой цели. Я выполняю запрос к 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 завершается с ошибкой «Проблемы с синтаксическим анализом JSON».

1 Ответ

0 голосов
/ 11 апреля 2020

Возможно, проблема в ключе API.

Проверьте, имеет ли он достаточные разрешения, или попробуйте создать новый.

...