簡介
本文討論了檢索和解析的主題PHP中的JSON POST 請求。當使用以 JSON 格式傳輸資料的 Web 服務和 API 時,這尤其有用。
識別問題
使用應用程式/內容類型時如果使用 POST 請求的 json 格式,則 $_POST 等常規方法將無法檢索資料。這是因為這些方法期望請求正文採用 application/x-www-form-urlencoded 資料的形式。
解決方案:File_get_contents('php://input')
為了解決這個問題,PHP 提供了file_get_contents('php://input') 函數,該函數允許您讀取請求中收到的原始資料身體。然後可以使用 JSON 解碼函數解析此原始資料。
更新的代碼
發送者 (CURL)
$ch = curl_init('http://webservice.local/'); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json', 'Content-Length: ' . strlen(json_encode($data)) )); $result = curl_exec($ch); $result = json_decode($result); var_dump($result);
接收器(PHP)
$json = file_get_contents('php://input'); $obj = json_decode($json, TRUE);
附加說明
以上是如何在 PHP 中讀取 JSON POST 請求的正文?的詳細內容。更多資訊請關注PHP中文網其他相關文章!