oleh Vincy. Terakhir diubah pada 13 Oktober 2022.
Sebagian besar API digunakan untuk menerima permintaan dan mengirim tanggapan dalam format JSON. JSON adalah format pertukaran data de-facto. Penting untuk mempelajari cara mengirim data permintaan JSON dengan panggilan API.
CURL adalah cara mengakses titik akhir API dari jarak jauh melalui jaringan. Kode di bawah ini akan menghemat waktu Anda untuk mencapai posting data JSON melalui PHP cURL.
Contoh: PHP cURL POST dengan Mengirim Data JSON
Ini mempersiapkan JSON dari array input dan menggabungkannya ke posting PHP cURL.
Ini menggunakan fungsi PHP json_encode untuk mendapatkan parameter permintaan yang disandikan. Kemudian, ia menggunakan opsi CURLOPT_POSTFIELDS untuk menggabungkan data JSON yang akan diposting.
curl-post-json.php
<?php
// URL of the API that is to be invoked and data POSTed
$url="https://example.com/api-to-post";
// request data that is going to be sent as POST to API
$data = array(
"animal" => "Lion",
"type" => "Wild",
"name" => "Simba",
"zoo" => array(
"address1" => "5333 Zoo",
"city" => "Los Angeles",
"state" => "CA",
"country" => "USA",
"zipcode" => "90027"
)
);
// encoding the request data as JSON which will be sent in POST
$encodedData = json_encode($data);
// initiate curl with the url to send request
$curl = curl_init($url);
// return CURL response
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
// Send request data using POST method
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
// Data conent-type is sent as JSON
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
'Content-Type:application/json'
));
curl_setopt($curl, CURLOPT_POST, true);
// Curl POST the JSON data to send the request
curl_setopt($curl, CURLOPT_POSTFIELDS, $encodedData);
// execute the curl POST request and send data
$result = curl_exec($curl);
curl_close($curl);
// if required print the curl response
print $result;
?>
Kode di atas adalah salah satu bagian dari siklus permintaan-respons API. Jika titik akhir milik beberapa API pihak ketiga, kode ini cukup untuk melengkapi contoh ini.
Namun, jika API berada di dalam sistem (API khusus yang dibuat untuk aplikasi itu sendiri), maka data yang diposting harus ditangani.
Cara mendapatkan data JSON di titik akhir
Ini untuk menangani data JSON yang diposting melalui PHP cURL di titik akhir API.
Itu menggunakan json_decode untuk mengonversi string JSON yang diposting menjadi objek JSON. Dalam program ini, ia menetapkan “benar” untuk mengubah data permintaan menjadi array.
curl-request-data.php
<?php
// use the following code snippet to receive
// JSON POST data
// json_decode converts the JSON string to JSON object
$data = json_decode(file_get_contents('php://input'), true);
print_r($data);
echo $data;
?>
Fungsi json_encode juga memungkinkan pengaturan batas bersarang yang diizinkan dari input JSON. Batas default adalah 512.
Jika data JSON yang diposting melebihi batas nesting, maka titik akhir API akan gagal untuk mendapatkan data postingan.
Mode lain untuk memposting data ke permintaan cURL
Pada tutorial sebelumnya, kita telah melihat banyak contoh pengiriman request dengan PHP cURL POST.
Program ini menyetel tipe konten “application/json” di CURLOPT_HTTPHEADER. Ada mode lain untuk memposting data melalui PHP cURL.
- multipart/form-data – untuk mengirim array data posting ke titik akhir/
- application/x-www-form-urlencoded – untuk mengirim string data formulir yang disandikan URL.
Catatan: PHP http_build_query() dapat menampilkan string yang disandikan URL dari sebuah array.
Unduh
Kembali ke Atas
Source link