2017-04-10 34 views
0

使用curl发送存储在变量中的POST请求数据,发送$ variable而不是json数据。使用curl存储在变量中的json数据发送

P=`/usr/bin/sudo /usr/bin/curl -X POST -H "Content-Type:application/json" --data-urlencode $data http://127.0.0.1/abc.php` 

尝试发送POST请求到PHP,但它收到$数据,而不是JSON数据{"abc":"11","xyz":"20"}。试试'$ data','$ data',\'$ data \'和\“$ data \”,其中$ data = {“abc”:“11”,“xyz”:“20 “}

请给出一个有效的例子。提前致谢。

+0

只有在$ DOUBLE QUOTED字符串文字中,$ variable变量才会被扩展。您正在使用反引号 – RiggsFolly

+0

'P ='/ usr/bin/sudo/usr/bin/curl --data-urlencode request = $ O http:// 127.0.0.1/abc.php'',这可以正常使用反引号,但是json包含的空间会截断请求的值。例如。 “val”:“值字符串”。所以我试着去请求邮件。 – minu

回答

0
P=`/usr/bin/sudo /usr/bin/curl -X POST -H "Content-Type:application/json" -d "$O" http://127.0.0.1/abc.php` solves issue. 

如果添加单引号,则不会展开变量,因此它需要添加双引号。

我建议所有的时间重新加载页面或脚本,因为我已经看到如果你没有重新加载,它会与你最后的改变,而不是新的改变。