【问题标题】:Curl and JSON beginner - web request POSTCurl 和 JSON 初学者 - 网络请求 POST
【发布时间】:2015-10-08 11:08:23
【问题描述】:

我是 curl 和 JSON 初学者。

我正在尝试使用在线 API,这很有效:

curl -X POST https://blah.com/trigger/{test_event}/with/key/mykeynumber123

该服务指定我也应该能够像这样发送其他数据:

您还可以发送可选的 JSON 正文:

{ "value1" : "", "value2" : "", "value3" : "" }

数据是完全可选的,你也可以将value1、value2和value3作为查询参数或表单变量传递。此内容将传递到您的食谱中的操作。

所以我的问题是我不知道如何格式化。第一个 curl 示例有效,但如果我尝试此示例,它将无法正常工作:

curl -X POST https://blah.com/trigger/{test-event}{"value1":"test","value2":"test2","value3":"test3"}/with/key/mykeynumber

有什么建议吗?

【问题讨论】:

标签: curl


【解决方案1】:

您可以发布带有适当标题的 json 数据:

curl -X POST
  https://blah.com/trigger/{test_event}/with/key/mykeynumber123
  -H "Content-Type: application/json"
  -d '{ "value1" : "", "value2" : "", "value3" : "" }'

如果您是从 Windows 运行它,则在 -d 参数处使用双引号 (") 而不是单引号。

【讨论】:

  • 这行得通。你知道我如何将 $myvar 等变量作为 value1 发送吗?
  • 还是文件内容?如果我可以使用这种方法发送文本文件的内容,那就太好了。
【解决方案2】:

试试

curl --data "value1=test&value2=test2&value3=test3" https://blah.com/trigger/{test_event}/with/key/mykeynumber123

我认为 JSON 只是为了显示目的而对其进行格式化的一种方式。

您的下一句提到将它们作为表单参数传递,这就是上述命令的作用。

提到的查询参数类似于:

curl -X POST https://blah.com/trigger/{test_event}/with/key/mykeynumber123?value1=test&value2=test2&value3=test3

【讨论】:

  • 它几乎可以工作。第一个 value1 被发送,但其他两个被忽略。 curl -X POST blah.com/trigger{test_event}/with/key/mykeynumber123?value1=test&value2=test2&value3=test3
  • 1.您可能需要对参数进行 url 编码,或者 2. 存在最大 URL 长度(在这种情况下您需要选择第一种方法)
  • 我不知道该怎么做。另外,我可以发送一个变量吗?如果可以,如何发送?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-26
  • 1970-01-01
  • 2022-07-12
  • 2018-03-13
  • 2017-07-01
相关资源
最近更新 更多