[英]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.