当前位置: 首页 > 面试题库 >

进行curl POST时出现“无效的凭据”

巫马曜文
2023-03-14
问题内容

我有以下格式的卷曲请求

curl -v -H "Content-Type:application/json" -H "x-user-id:xxx" -H "x-api-key:yyy" --data '{"logs":"'"${TEST_OUTPUT}"'","pass":"true | false"}' https://razeedash.one.qqq.cloud.com/api/v1/clusters/zzz/api/test_results

当我从MAC终端执行此操作时,此功能正常。但是相同的命令抛出

13:49:26 {
13:49:26   "status": "error",
13:49:26   "message": "Invalid credentials"
13:49:26 }

我看到篇文章,但不知道该如何发送没有花括号的json正文。我知道我们可以将其保存为file.json并将其用作正文。但是由于某些原因,在我的方案中无法实现


问题答案:

通常,应避免尝试使用字符串插值构建JSON。使用类似jq处理任何必要报价的工具。

jq -n --argson o "$TEST_OUTPUT" '{logs: $o, pass: "true | false"}' |
    curl -v -H "Content-Type:application/json" \
            -H "x-user-id:xxx" \
            -H "x-api-key:yyy" \
            --data @- \
            https://razeedash.one.qqq.cloud.com/api/v1/clusters/zzz/api/test_results

但是,如果您可以像现在一样设法正确生成JSON,则可以将jq命令替换为echo

echo '{"logs": ...' | curl ...

@-参数--data表示要从标准输入中读取。



 类似资料:
  • 问题内容: 我正在使用Microsoft SQL SERVER 2014。 以下是我的查询 我得到了错误 消息207,级别16,状态1,第2行无效的列名称“ total_calories”。 这是一个非常简单的表(我是sql的新手,正在学习它)。有人可以指出我在做什么错吗?谢谢。 问题答案: 是必需的,因为您无权访问别名

  • 我想使用脚本化方法(可能是通过)curl,从驱动器api访问一些简单的信息,例如创建日期。从本质上讲,我想在他们的Web界面中编写我可以做的事情:https://developers.google.com/drive/api/v3/reference/files/list。 我一直在使用curl命令,他们在上面的链接的查询中公开该命令: 我为此创建了一个API密钥(目前不受限制)。并使用此应用程序

  • 当我将收件人添加为俘获/嵌入收件人时,我可以创建一个信封,但是当为俘获收件人请求令牌时,我得到了一个错误“无效签名凭据”。 这是我对我的DocuSign演示帐户提出的请求。

  • 用户确认使用选定范围访问Google帐户的权限。 将检索刷新令牌并将其保存到长时间存储中。 每次需要时(如果访问令牌过期),都将检索访问令牌并用于访问API。 但有时(到目前为止,超过6个月只有两次)我会经历奇怪的行为: 我还尝试通过向https://www.googleapis.com/oauth2/v1/tokeninfo发送请求来验证“新”访问令牌 但是当我尝试访问驱动器提要时,响应是: 我