Menyiarkan JSON ke PHP Menggunakan cURL: Isu dengan Tafsiran Data
Dalam percubaan untuk melaksanakan perintah cURL POST dalam rangka kerja PHP rehat , pengguna menghadapi kesukaran untuk mentafsir data yang disiarkan. Khususnya, parameter POST -d tidak dikenali seperti yang dijangkakan, mengakibatkan tatasusunan kosong.
Pernyataan Masalah
Seorang pengguna cuba menggunakan arahan cURL:
curl -i -X POST -d '{"screencast":{"subject":"tools"}}' \ http://localhost:3570/index.php/trainingServer/screencast.json
Walaupun melaksanakan arahan pada kedua-dua Windows (PHP 5.2) dan Linux (PHP yang sama versi), data POST tidak ditafsirkan dengan betul. Respons pelayan menunjukkan tatasusunan "siaran skrin" kosong, seperti yang dilihat di bawah:
{"screencast":{"id":null,"subject":null,"body":null, "dataUrl":null,"dataMedium":null,"createdOn":null,"author":null}}
Penyelesaian
Isu berpunca daripada andaian lalai cURL bahawa parameter -d menentukan data berkod bentuk. Untuk menyelesaikan masalah ini, parameter -H mesti digunakan untuk menentukan Jenis Kandungan sebagai JSON:
curl -v -H "Content-Type: application/json" -X POST -d '{"screencast":{"subject":"tools"}}' \ http://localhost:3570/index.php/trainingServer/screencast.json
Dengan pengubahsuaian ini, cURL mentafsir data JSON yang disiarkan dengan betul dan operasi POST berjaya.
Atas ialah kandungan terperinci Mengapakah data cURL POST JSON saya ditafsirkan sebagai kosong dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!