bash curl POST请求:使用变量的“-d”选项

时间:2016-12-22 08:31:01

标签: bash curl

我正在尝试发出POST请求。以下工作没有任何问题;

# Get expected response
curl http://localhost:9020/xxx/xxxx/ -H Content-type:application/json 
-H Accept:application/json -d '{"LED":{ 
"language":"CHINESE"}, "text":"1928年11月22日"}'

但是,如果我尝试设置-d选项的值,则curl无法将请求提交给服务器。

var="{\"LED\":{ \"language\":\"CHINESE\"}, \"text\":\"1928年11月22日\"}"
# No Response
curl http://localhost:9020/xxx/xxxx/ -H Content-type:application/json 
-H Accept:application/json -d $var

任何人都可以解释为什么后者似乎不起作用?我尝试了各种各样的逃脱角色,但也没有运气。

1 个答案:

答案 0 :(得分:1)

您需要双引号变量:

curl

如果没有双引号,则值将按空格分割, 并且shell将其解释为+=的多个附加参数, 但是您需要将该值作为单个参数。 那是双引号会实现的目标。