PHP Curl POST JSON Kirim data permintaan

Programming

oleh Vinci terakhir diubah pada 13 Oktober 2022.

Sebagian besar API digunakan untuk menerima permintaan dan mengirim tanggapan dalam format JSON. JSON adalah format pertukaran data yang sebenarnya. Penting untuk mempelajari cara mengirim data permintaan JSON dengan panggilan API.

cURL adalah cara untuk mengakses titik akhir API dari jarak jauh melalui jaringan. Kode berikut akan menghemat waktu Anda untuk mengirim data JSON melalui PHP cURL.

Contoh: PHP cURL POST dengan mengirimkan data JSON

Mempersiapkan JSON dari array input dan meletakkannya di postingan PHP cURL.

Ini menggunakan fungsi json_encode PHP untuk mendapatkan parameter permintaan yang disandikan. Kemudian, ia menggunakan opsi CURLOPT_POSTFIELDS untuk mengemas data JSON untuk diposkan.

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;
?>

php curl posting json

Kode di atas adalah bagian dari siklus permintaan-respons API. Jika titik akhir milik API pihak ketiga, kode ini cukup untuk melengkapi contoh ini.

Namun, jika API bersifat internal ke sistem (API khusus yang dibuat untuk aplikasi itu sendiri), maka data yang dikirim harus dikelola.

Cara mendapatkan data JSON di titik akhir

Ini untuk menangani data JSON yang dikirim melalui PHP cURL di titik akhir API.

Itu menggunakan json_decode untuk mengubah string JSON yang diteruskan menjadi objek JSON. Dalam program ini, ia menetapkan “benar” untuk mengonversi data yang diminta ke 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 dari input JSON. Batas default adalah 512.

Jika data JSON yang dikirim melebihi batas bersarang, titik akhir API tidak dapat menerima data kiriman.

Mode pengiriman data lainnya 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 cara lain untuk mengirim data melalui PHP cURL.

  1. multipart/form-data – untuk mengirim array data posting ke titik akhir/
  2. 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

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *