Cara SIARAN Data JSON dengan PHP cURL, Kembali dalam Format Boleh Baca
Kod anda tidak menyiarkan data JSON dengan betul, walaupun pada pelayan anda , ia mengembalikan tatasusunan kosong. Untuk melaksanakan REST menggunakan JSON seperti dalam API Shopify, kami perlu menangani isu ini.
Membetulkan Permintaan POST
Untuk menyelesaikan masalah, kami perlu mengekod keseluruhan POST data dalam JSON, bukan hanya medan "pelanggan". Ubah suai kod anda seperti berikut:
$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";
Mengakses Data POST
Di halaman lain, kami tidak boleh menggunakan $_POST untuk mendapatkan semula data POST kerana pelayan- penghuraian sisi. Sebaliknya, gunakan file_get_contents("php://input"), yang mengandungi JSON POSTed. Untuk melihat data dalam format yang boleh dibaca:
echo '<pre class="brush:php;toolbar:false">'.print_r(json_decode(file_get_contents("php://input")),1).'';
Pertimbangan Tambahan
Atas ialah kandungan terperinci Mengapakah permintaan PHP cURL POST saya mengembalikan tatasusunan kosong apabila menghantar data JSON?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!