Rumah >pembangunan bahagian belakang >tutorial php >Mengapakah permintaan PHP cURL POST saya mengembalikan tatasusunan kosong apabila menghantar data JSON?

Mengapakah permintaan PHP cURL POST saya mengembalikan tatasusunan kosong apabila menghantar data JSON?

DDD
DDDasal
2024-12-15 14:09:33437semak imbas

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

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

  • Pertimbangkan untuk menggunakan perpustakaan pihak ketiga untuk berinteraksi dengan Shopify API dan bukannya secara langsung antara muka dengannya sendiri.
  • Pastikan pelayan dikonfigurasikan untuk menerima permintaan JSON dengan yang betul Pengepala Jenis Kandungan.

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn