[英]Bash JSON CURL request not working along with PHP script
我正在bash中編寫一些自動化腳本,最后一步,我希望該腳本通過CURL將一些數據發送到遠程服務器。 數據采用JSON格式,數據接收器采用PHP編寫。
我已經進行了無數測試,但是在提出CURL請求后,無法從PHP腳本獲得答案。
我已經做到了:
BASH端(發送方):
#!/bin/bash
json='
{
"website_url": "${site_url}",
"web_dir": "${www_dir}",
"php_fpm_version": "7.3",
"server_id": "1"
}'
echo "${json}" | curl --request POST "https://website.tld/api/api.php" \
-H "Content-Type: application/json" \
-d @-
PHP端(接收方):
<?php
print_r($_POST);
預期成績:
Array(
{
"website_url": "${site_url}",
"web_dir": "${www_dir}",
"php_fpm_version": "7.3",
"server_id": "1"
}
)
實際結果:
Aray
(
)
您可以通過處理原始輸入來獲取JSON數據。 例如,將您的PHP文件更改為此:
<?php
$data = json_decode(file_get_contents('php://input'), true);
print_r($data);
發現了一個問題:JSON數組中的每一行的開頭都有空格。 剛剛這樣做:
json='{
"account": {
"wordpress": {
"username": "${username}",
"password": "${wp_user_pass}"
},
"database": {
"dbname": "${username}",
"username": "${username}",
"password": "${dbpass}"
},
"ftp": {
"username": "${username}",
"password": "${ftp_user_pass}"
}
},
"website_url": "${site_url}",
"web_dir": "${www_dir}",
"php_fpm_version": "7.3",
"server_id": "1"
}'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.