第一个命令有效,第二个命令无效。我需要更改什么才能让 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/