首頁 > 後端開發 > php教程 > 為什麼我的 PHP cURL POST 請求在發送 JSON 資料時回傳空數組?

為什麼我的 PHP cURL POST 請求在發送 JSON 資料時回傳空數組?

DDD
發布: 2024-12-15 14:09:33
原創
435 人瀏覽過

Why is my PHP cURL POST request returning an empty array when sending JSON data?

如何使用PHP cURL 發布JSON 數據,以可讀格式返回

即使在您的伺服器上,您的程式碼也未正確發布JSON 數據,它傳回一個空數組。要像 Shopify 的 API 中那樣使用 JSON 實作 REST,我們需要解決此問題。

更正 POST 請求

要解決此問題,我們需要對整個內容進行編碼以 JSON 格式發布數據,而不僅僅是「客戶」欄位。修改您的程式碼如下:

$ch = curl_init($url);
# Setup request to send JSON via POST.
$payload = json_encode(array("customer" => $data));
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json'));
# Return response instead of printing.
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
# Send request.
$result = curl_exec($ch);
curl_close($ch);
# Print response.
echo "<pre class="brush:php;toolbar:false">$result
";
登入後複製

存取POST 資料

在另一頁上,我們無法使用$_POST 來擷取POST 資料,因為伺服器-側面解析。相反,請使用 file_get_contents("php://input"),其中包含 POSTed JSON。要以可讀格式查看資料:

echo '<pre class="brush:php;toolbar:false">'.print_r(json_decode(file_get_contents("php://input")),1).'
';
登入後複製

其他注意事項

  • 考慮使用第三方庫與Shopify API 交互,而不是使用直接與它交互。
  • 確保伺服器已配置為接收具有正確 Content-Type 的 JSON 請求標題。

以上是為什麼我的 PHP cURL POST 請求在發送 JSON 資料時回傳空數組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板