簡體   English   中英

Bash JSON CURL請求無法與PHP腳本一起使用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM