json - 使用 json 数组 curl

标签 json bash curl

第一个命令有效,第二个命令无效。我需要更改什么才能让 json 数组工作?提前谢谢你。

命令#1:

curl -d '{"uid":"TEST", "object":"TEST"}' \
        -H "Content-Type: application/json" \
        -X POST http://WEBSERVER/api/v1/inventory

命令#2

curl -d '{"uid":"TEST","object":["server1", "server2", "server3"]}' \
        -H "Content-Type: application/json" \
        -X POST http://WEBSERVER/api/v1/inventory

最佳答案

您的 curl 语法很好,您可以使用 httpbin.org 进行测试,例如:

$ curl -d '{"uid":"TEST","object":["server1", "server2", "server3"]}' \
    -H "Content-Type: application/json" \
    -X POST http://httpbin.org/post

返回:

{
  "args": {},
  "data": "{\"uid\":\"TEST\",\"object\":[\"server1\", \"server2\", \"server3\"]}",
  "files": {},
  "form": {},
  "headers": {
    "Accept": "*/*",
    "Connection": "close",
    "Content-Length": "57",
    "Content-Type": "application/json",
    "Host": "httpbin.org",
    "User-Agent": "curl/7.54.0"
  },
  "json": {
    "object": [
      "server1",
      "server2",
      "server3"
    ],
    "uid": "TEST"
  },
  "origin": "x.x.x.x",
  "url": "http://httpbin.org/post"
}

您确实可以通过管道传输结果并使用您的输入验证输出:

$ curl -d '{"uid":"TEST","object":["server1", "server2", "server3"]}' \
    -H "Content-Type: application/json" \
    -X POST http://httpbin.org/post -s | jq -r '.data'

它将打印:

{"uid":"TEST","object":["server1", "server2", "server3"]}

可能您用来发布数据的服务器不接受您的请求,检查返回的状态代码,可以提供线索,可能是 400(错误请求)或 406( Not Acceptable )等,以防万一这是可能的列表 status codes.

关于json - 使用 json 数组 curl ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46715521/

相关文章:

jquery - Select2 不起作用,始终显示 "No results found"

json - 如何在 jq 中将 JSON 对象转换为 key=value 格式?

java - JSON重复键,使用java(spring)验证

javascript - 客户端凭证流适用于curl,但不适用于浏览器

php - cURL超时,你能优雅的处理吗?

java - 将 json 数据传递给 spring-boot 应用程序的 Curl POST 命令不起作用

java - 如何在Android中显示统计数据等数据?

sql - 最后找不到命令

linux - AWK 错误 - grep 处或附近的语法错误

linux - 使用 grep/linux/bash 计算重复字符串的重叠出现次数