我正在使用CURL命令行将HTTP POST发送到Web服务。我想将文件的内容包含在POST命令正文的 PART 中。这可能吗?我知道我可以像回答here一样发送整个文件。但我只希望身体的一部分成为文件的内容。
例如
curl -d '{ "name": "rahul", "speed": "fast", "data": { "number": 1, "letter": "abd", "letter2": "efg"} }' 'http://...'
此处我只想data
作为文件的内容。不是整个身体。我怎么能这样做?
答案 0 :(得分:1)
设置变量以包含文件内容:
data=$(cat filename)
然后将其替换为JSON:
curl -d '{ "name": "rahul", "speed": "fast", "data": ' "$data" ' }' 'http://...'
答案 1 :(得分:0)
您接受了@Barmar的回答,但是对于阅读此书的任何人,@ Barmar都会切换双引号和单引号,这将导致该命令无法正常工作。
以下作品:
data=$(cat filename) && \
curl -d '{ "name": "rahul", "speed": "fast", "data": "'$data'" }' 'http://...'
请注意,$data
变量先用单引号引起来,然后用双引号引起来。