Rumah >pembangunan bahagian belakang >tutorial php >Mengapakah data cURL POST JSON saya ditafsirkan sebagai kosong dalam PHP?

Mengapakah data cURL POST JSON saya ditafsirkan sebagai kosong dalam PHP?

DDD
DDDasal
2024-11-19 03:34:02583semak imbas

Why is my cURL POST JSON data interpreted as empty in PHP?

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!

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