gpt4 book ai didi

javascript - bash - curl 到 Heroku 时无效的 JSON

转载 作者:行者123 更新时间:2023-11-30 21:11:18 24 4
gpt4 key购买 nike

我正在编写我的第一个 bash 脚本,试图通过 curl 设置 Heroku 环境变量。但是,我从 Heroku 收到一个错误的请求错误,说我的数据是无效的 JSON。不过我不明白为什么。

首先,我的 bash 脚本:

#!/bin/bash

GIT_COMMIT=`node get_git_commit.js`

echo $GIT_COMMIT

curl -n -X PATCH https://api.heroku.com/apps/my-app-name/config-vars \
-d '{
"GIT_COMMIT": $GIT_COMMIT
}' \
-H "Content-Type: application/json" \
-H "Accept: application/vnd.heroku+json; version=3"

此脚本引用 JavaScript 文件 get_git_commit.js:

const fs = require("fs")

require("child_process").exec("git rev-parse HEAD", (err, stdout) => {
const commit = stdout.replace(/\n/g, "")
console.log(`"${commit}"`)
}

当我运行 bash 脚本时,echo 正确地将 git 散列打印到控制台,但 Heroku 返回

{
"id":"bad_request",
"message":"Provided data is invalid JSON."
}

我测试只是手动设置数据为

"GIT_COMMIT": 1234

而且效果很好。

我完全不熟悉为 bash 编写代码,所以我可能缺少一些基本约定 - 非常感谢任何指导。

最佳答案

$GIT_COMMIT 可能不是数字。

您可能正在发送类似 { "GIT_COMMIT": 4d2fb } 的内容,这不是有效的 JSON。

您需要将字符串用引号引起来。

关于javascript - bash - curl 到 Heroku 时无效的 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46103650/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com