這個問題解決了使用 PHP 的 cURL 函式庫發布 JSON 資料的問題。使用者提供旨在將 POST 資料傳送到特定 URL 的程式碼片段。但是,程式碼無法檢索接收頁面上發布的數據,導致數組為空。
問題在於 JSON 資料的發布方式不正確。此外,程式碼使用 print_r($_POST) 來檢索發布的數據,這不是建議的方法。
要使用 cURL 正確發布 JSON 數據,必須確保數據已正確進行 JSON 編碼。在給定的程式碼片段中,只有「customer」POST 欄位的值是 JSON 編碼的。相反,整個 POST 資料應該是 JSON 編碼的。
此外,要檢索接收頁面上發布的數據,您可以使用 file_get_contents("php://input") 函數,該函數將包含發布了 JSON 數據。
這裡是如何使用PHP 正確發布JSON 資料的範例cURL:
<?php $url = 'url_to_post'; $data = [ "first_name" => "First name", "last_name" => "last name", "email" => "email@example.com", "addresses" => [ "address1" => "some address", "city" => "city", "country" => "CA", "first_name" => "Mother", "last_name" => "Lastnameson", "phone" => "555-1212", "province" => "ON", "zip" => "123 ABC", ], ]; $data_string = json_encode($data); $ch = curl_init($url); # Setup request to send json via POST. curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string); curl_setopt($ch, CURLOPT_HTTPHEADER, ['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"; ?>
此外,使用者表達了按照Shopify的API 規範使用JSON 實現REST 的意圖。值得一提的是,強烈建議使用專為與 Shopify API 互動而設計的第三方程式庫,因為它可以簡化流程並減少潛在錯誤。
以上是如何使用 PHP cURL 正確 POST JSON 資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!