繁体   English   中英

如何在 CURL POST 命令中将 JSON 文件作为请求正文的一部分发送

[英]How to send JSON file as part of request body in CURL POST command

我正在使用 CURL 命令行将 HTTP POST 发送到 Web 服务。 我想包括文件的内容作为POST指令的身体的一部分 这可能吗? 我知道我可以按照此处的回答将文件作为整个正文发送。 但我只希望正文的一部分成为文件的内容。

例如

curl -d '{ "name": "rahul", "speed": "fast", "data": { "number": 1, "letter": "abd", "letter2": "efg"} }' 'http://...'

这里我只想要data作为文件的内容。 不是整个身体。 我怎样才能做到这一点?

设置一个变量来包含文件内容:

data=$(cat /path/to/file)

然后将其替换为 JSON:

curl -d '{ "name": "rahul", "speed": "fast", "data": "'$data'" }' 'http://...'

您接受了@Barmar 的回答,但是对于阅读本文的任何人,@Barmar 切换了双引号和单引号,这将导致命令无法按预期工作。

以下工作:

data=$(cat filename) && \
curl -d '{ "name": "rahul", "speed": "fast", "data": "'$data'" }' 'http://...'

请注意, $data变量首先被单引号包围,然后被双引号包围。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM