Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Membaca Data JSON POST dalam Perkhidmatan Web PHP Saya?

Bagaimanakah Saya Boleh Membaca Data JSON POST dalam Perkhidmatan Web PHP Saya?

Barbara Streisand
Barbara Streisandasal
2024-12-17 02:02:24589semak imbas

How Can I Read JSON POST Data in My PHP Web Service?

Membaca JSON POST menggunakan PHP

Bersusah payah membaca data JSON dalam perkhidmatan web PHP?

< h3>The Masalah

Anda mempunyai perkhidmatan web yang berfungsi dengan sempurna dengan data borang ringkas. Walau bagaimanapun, apabila anda perlu menghantar data POST dengan jenis kandungan aplikasi/json, perkhidmatan web anda gagal mengembalikan sebarang nilai. Anda mengesyaki ia berkaitan dengan cara anda mengendalikan nilai POST.

Penyelesaian

Isunya terletak pada cara anda mengakses data POST. Untuk permintaan JSON POST, anda perlu menggunakan kaedah yang berbeza daripada pembolehubah $_POST standard.

Membaca Data JSON POST

Untuk membaca data JSON daripada POST minta, gunakan kod berikut:

$inputJSON = file_get_contents('php://input');
$input = json_decode($inputJSON, TRUE); // Convert JSON into an array

// Use the $input array to access your JSON data

Pembetulan Kod CURL

Dalam permintaan CURL anda, anda menggunakan CURLOPT_POSTFIELDS untuk mengekod parameter anda sebagai application/x-www-form-urlencoded. Walau bagaimanapun, untuk permintaan JSON POST, anda perlu menyediakan data berformat JSON.

Tukar kod CURL anda kepada yang berikut:

$data_string = json_encode($data);

$curl = curl_init('http://webservice.local/');
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json',
    'Content-Length: ' . strlen($data_string)
));

Ubah suai Perkhidmatan Web

Pastikan hanya ada satu panggilan ke pengepala('Content-type: aplikasi/json'); dalam halaman perkhidmatan web anda. Jika terdapat berbilang panggilan, ia boleh mengganggu respons JSON.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membaca Data JSON POST dalam Perkhidmatan Web PHP Saya?. 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