2017-04-10 72 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. 

如果添加單引號,則不會展開變量,因此它需要添加雙引號。

我建議所有的時間重新加載頁面或腳本,因爲我已經看到如果你沒有重新加載,它會與你最後的改變,而不是新的改變。