如何使用JSON参数cURL发布?

Dav*_* T. 13 post json curl

我不确定这是否可行,但我正在尝试卷曲帖子,但是以json为参数,如下:

curl -X POST 'https://myserver/action?params={"field1":"something","whatever":10,"description":"body","id":"random","__oh__":{"session":"12345678jhgfdrtyui"}}'
Run Code Online (Sandbox Code Playgroud)

但是,我不断收到一些错误curl: (3) [globbing] nested braces not supported at posX.

我该怎么做呢?

Yon*_*nik 15

卷曲错误是由于大括号{}和方括号[]是特殊的卷曲字符.使用-g选项关闭globbing,你应该没问题.

与这篇文章相同的问题: 如何使用curl将数组与json对象相关联


Mar*_*cny 6

有两种方法可以解决这个问题.

  1. 确保正确转义JSON,以便将其作为参数发送.
  2. 设置HTTP标头以接受json.

例如:

curl -X POST -H "Content-Type: application/json" \
--data '{"field1":"something","whatever":10,"description":"body","id":"random","__oh__":{"session":"12345678jhgfdrtyui"}}' \
https://example.com/action
Run Code Online (Sandbox Code Playgroud)

  • 由于 --data 表示 POST 方法,因此可以从命令行中删除“-X POST”。 (3认同)
  • @DanielStenberg是真的,但外显是更好的IMO. (2认同)