[英]Retrieve JSON via PHP REST API
我有這個cURL函數將json發送到REST API:
$url = "https://server.com/api.php";
$fields = array("method" => "mymethod", "email" => "myemail");
$result = sendTrigger($url, $fields);
function sendTrigger($url, $fields){
$fields = json_encode($fields);
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json; charset=UTF-8"));
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$curlResult["msg"] = curl_exec($ch);
$curlResult["http"] = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
return $curlResult;
}
在服務器上,我有這個代碼:
$data = json_decode($_REQUEST);
var_dump($data);
exit();
當我執行cURL命令時,它返回我:
Warning: json_decode() expects parameter 1 to be string, array given in
怎么樣?
謝謝。
如果您沒有使用其中一種表單編碼的內容類型,PHP將不會將數據填充到$_POST
。
您需要從PHP原始輸入獲取您的JSON有效負載,如下所示:
$json = file_get_contents('php://input');
$array = json_decode($json);
在PHP中, json_decode接受一個字符串並將其轉換為一個對象。 $_REQUEST
變量是一個全局變量,包含$_GET
, $_POST
和$_COOKIE
(請參閱PHP參考 )。 最有可能的是,您的代碼中存在輸入錯誤,您可能打算使用$request
而不是$_REQUEST
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.