簡體   English   中英

通過PHP REST API檢索JSON

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

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